Настройка входа S3 в Airflow

Это сводит меня с ума.

Я настраиваю поток воздуха в облачной среде. У меня есть один сервер, на котором работает планировщик и веб-сервер, и один сервер в качестве работника сельдерея, и я использую airflow 1.8.0.

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

Я установил правильный путь в airflow.cfg на обоих серверах:

remote_base_log_folder = s3: // my-bucket / airflow_logs /

remote_log_conn_id = s3_logging_conn

Я настроил s3_logging_conn в пользовательском интерфейсе воздушного потока с ключом доступа и секретным ключом, как описано здесь.

Я проверил соединение с помощью

s3 = airflow.hooks.S3Hook ('s3_logging_conn')

s3.load_string ('тест','тест',bucket_name='мое ведро')

Это работает на обоих серверах. Таким образом, соединение установлено правильно. Все, что я получаю, когда запускаю задачу, это

*** Файл журнала не является локальным.

*** Загрузка здесь: http: // *******

*** Не удалось получить файл журнала с рабочего.

*** Чтение удаленных журналов...

Не удалось прочитать логи с s3://my-bucket/airflow_logs/my-dag/my-task/2018-02-15T21:46:47.577537

Я попытался вручную загрузить журнал в соответствии с ожидаемыми соглашениями, и веб-сервер все еще не может его забрать, поэтому проблема заключается в обеих сторонах. Я в недоумении, что делать, все, что я до сих пор читал, говорит мне, что это должно работать. Я близок к установке 1.9.0, который, как я слышал, регистрирует изменения и смотрит, повезет ли мне больше.

ОБНОВЛЕНИЕ: я сделал чистую установку Airflow 1.9 и следовал определенным инструкциям здесь.

Веб-сервер даже не запускается сейчас со следующей ошибкой:

airflow.exceptions.AirflowConfigException: раздел / ключ [core/remote_logging] не найден в конфигурации

В этом шаблоне конфигурации есть явная ссылка на этот раздел.

Поэтому я попытался удалить его и просто загрузить обработчик S3 без предварительной проверки, и вместо этого я получил следующее сообщение об ошибке:

Невозможно загрузить конфиг, содержит ошибку конфигурации.

Traceback (последний вызов был последним):

Файл "/usr/lib64/python3.6/logging/config.py", строка 384, в разрешении:

self.importer (используется)

ModuleNotFoundError: модуль не указан

'Airflow.utils.log.logging_mixin.RedirectStdHandler';

airflow.utils.log.logging_mixin не является пакетом

У меня такое ощущение, что это не должно быть так сложно.

Любая помощь будет высоко ценится, ура

1 ответ

Решение

Решено:

  1. повышен до 1.9
  2. выполнил шаги, описанные в этом комментарии
  3. добавленной

    [Ядро]

    remote_logging = True

    к airflow.cfg

  4. побежал

    pip install --upgrade airflow[log]

Теперь все работает нормально.

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