Apache Airflow 1.10.10, удаленный рабочий и журналы S3

Я недавно обновил воздушный поток с 1.10.0 до 1.10.10. Текущая настройка - web, worker, scheduler и flower находятся на одном компьютере. Когда DAG запускается, первым шагом является запуск нового EMR для DAG и вместе с ним рабочего узла, на котором выполняется только рабочий процесс. Мы используем сельдерей-душитель. Этот рабочий узел отправляет задачи для запуска в кластере EMR. После выполнения задач следующими шагами будет завершение EMR и завершение работы этого рабочего экземпляра. На этом рабочем узле присутствует журнал каждой задачи. Пока выполняются задачи или рабочий узел, я могу видеть журналы в веб-интерфейсе. Но как только рабочий завершается, я не могу просматривать журналы. Конфигурация настроена для загрузки журналов в s3. Я вижу журналы startEMR и startWorker на S3, поскольку эти журналы являются основным экземпляром воздушного потока (где работают все 4 процесса). Вот фрагмент конфигурации airflow.cfg.

base_log_folder = /home/deploy/airflow/logs
remote_logging = True
remote_base_log_folder = s3://airflow-log-bucket/airflow/logs/
remote_log_conn_id = aws_default
encrypt_s3_logs = False
s3_log_folder = '/airflow/logs/'
executor = CeleryExecutor

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

*** Log file does not exist: /home/deploy/airflow/logs/XXXX/XXXXXX/2020-07-07T23:30:05+00:00/1.log
*** Fetching from: http://ip-10-164-62-253.ap-southeast-2.compute.internal:8799/log/XXXX/XXXXXX/2020-07-07T23:30:05+00:00/1.log
*** Failed to fetch log file from worker. HTTPConnectionPool(host='ip-10-164-62-253.ap-southeast-2.compute.internal', port=8799): Max retries exceeded with url: /log/xxxx/XXXXXX/2020-07-07T23:30:05+00:00/1.log (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f6750ac52b0>: Failed to establish a new connection: [Errno 113] No route to host',))

Итак, в основном -

  1. Это работало в воздушном потоке 1.10.1 (мне не нужно было добавлять remote_logging=True)
  2. Журналы копируются в S3 для запуска EMR и шагов запуска рабочего узла и отображаются в веб-интерфейсе.
  3. На S3 не копируются только задачи, выполняемые на удаленном рабочем узле.

Может кто-нибудь, дайте мне знать, что мне не хватает в конфигурации, как та же конфигурация, которая использовалась для работы с airflow1.10.0

1 ответ

Я обнаружил ошибку, которую делал. Модуль S3, который устанавливался на новом рабочем узле, устанавливался через pip, а не через pip3. Сервер Airflow установил эту установку из pip3. Еще одно изменение конфигурации, которое мне пришлось сделать, было в разделе веб-сервера файла airflow.cfg.

worker_class = sync

Ранее это было gevent.

Другие вопросы по тегам