Как исправить Не удалось получить файл журнала от работника. Ошибка неподдерживаемого протокола URL в журналах Airflow DAG?

Я запускаю Airflow через докер через этот образ. apache/airflow:2.1.0 Пожалуйста, обратитесь к этой теме для начальной ошибка, с которой я столкнулся.

В настоящее время я могу запускать свои предыдущие существующие DAG. Однако, когда я добавляю новые DAGS, я получаю следующую ошибку в файле журнала. Я почти уверен, что это не проблема с памятью или вычислениями.

*** Log file does not exist: /opt/airflow/logs/my-task/my-task/2021-06-15T14:11:33.254428+00:00/1.log
*** Fetching from: http://:8793/log/my-task/my-task/2021-06-15T14:11:33.254428+00:00/1.log
*** Failed to fetch log file from worker. Unsupported URL protocol ''

Вещи, которые я уже пробовал:

  • Перезапуск моих контейнеров
  • docker prune и затем строительство
  • Удаление DAG из внешнего интерфейса

person raaj    schedule 15.06.2021    source источник
comment
Я также сталкиваюсь с этой проблемой с CeleryExecutor в кластере K8, развернутом через helm-chart. Но после удаления модулей и развертываний все работает нормально.   -  person Rahul Agrawal    schedule 18.06.2021


Ответы (4)


У меня нет решения для этого, но у меня есть ключ.

Судя по всему, проблема заключается в ошибке, которая не позволяет Airflow сохранять журнал, если задача даже не запускается, как вы уже знаете.

Таким образом, что-то, что не является синтаксической ошибкой, вызывает ошибку. В моем случае я на 80% уверен, что Airflow не выбирает правильный путь к моим папкам config и utils, поэтому первое, что делает задача, — это пытается использовать функции и учетные данные, хранящиеся в этих папках, и не может, поэтому немедленно происходит сбой, прежде чем он сможет сохранить некоторые журналы. Вероятно, я могу что-то сделать с этим в файле yaml.

Кстати, вчера я видел ваш вопрос на нескольких платформах без ответа, и я хочу сказать вам, что моя душа резонировала с вашей в этом крестовом походе, чтобы заставить богом забытую DAG Airflow работать. Я чувствую тебя, братан.

person Maltita    schedule 01.07.2021

Здесь та же проблема. Я использую CeleryExecutor в кластере K8S. Каждый компонент работает как независимый модуль (в стадии развертывания). Моя первая мысль: это может быть связано с отсутствием подключенных томов (с файлами). Я попробую смонтировать ПВХ и дам информацию, если он работает

person shock_in_sneakers    schedule 17.06.2021

У меня такая же проблема. Для меня причиной сбоя задачи в начале запуска было то, что у моего работника не было прав на запись в смонтированный каталог журналов (ro mount на общий диск). После того, как я исправил, все начало работать.

person MrBronson    schedule 02.07.2021

Если вы используете вид, еще один способ исправить это:

Прежде всего, получите файл конфигурации, набрав:

helm show values apache-airflow/airflow > values.yaml 

После этого проверьте, что fixPermissions имеет значение true.

persistence:
  # Enable persistent volumes
  enabled: true
  # Volume size for worker StatefulSet
  size: 10Gi
  # If using a custom storageClass, pass name ref to all statefulSets here
  storageClassName:
  # Execute init container to chown log directory.
  # This is currently only needed in kind, due to usage
  # of local-path provisioner.
  fixPermissions: true

Обновите вашу установку:

helm upgrade --install airflow apache-airflow/airflow -n airflow -f values.yaml --debug
person zakaev    schedule 06.07.2021