Настройка входа 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.9
- выполнил шаги, описанные в этом комментарии
добавленной
[Ядро]
remote_logging = True
к airflow.cfg
- побежал
pip install --upgrade airflow[log]
Теперь все работает нормально.