Nano Hash - криптовалюты, майнинг, программирование

Настройка регистрации S3 в Airflow

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

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

Выполнение заданий отлично работает. Что отказывается работать, так это журналирование.

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

remote_base_log_folder = s3: // мой-ведро / airflow_logs /

remote_log_conn_id = s3_logging_conn

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

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

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

s3.load_string ('тест', 'тест', bucket_name = 'my-bucket')

Это работает на обоих серверах. Итак, соединение установлено правильно. Но все, что я получаю всякий раз, когда запускаю задачу, - это

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

*** Получение здесь: 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 без предварительной проверки, и вместо этого получил следующее сообщение об ошибке:

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

Отслеживание (последний вызов последний):

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

self.importer (подержанный)

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

'airflow.utils.log.logging_mixin.RedirectStdHandler';

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

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

Любая помощь будет принята с благодарностью, ура

15.02.2018

  • Я переустановил все, сгенерировал новые учетные данные и обновился до Airflow 1.9, и проблема не устранена. 16.02.2018
  • Пожалуйста, обновите журналы с ошибками из Airflow 1.9, он должен работать, и некоторые пользователи фактически используют его в производственной среде. 19.02.2018
  • Готово, добавлены новые ошибки. 19.02.2018
  • Кстати, текущий шаблон incubator-airflow / airflow / config_templates / airflow_local_settings.py, присутствующий в главной ветке, содержит ссылку на класс airflow.utils.log.s3_task_handler.S3TaskHandler, которого нет в apache-airflow == 1.9 .0 пакет Python. Исправить просто - используйте этот базовый шаблон: github.com/apache/incubator-airflow/blob/v1-9-stable/airflow/ После этого следуйте всем остальным инструкциям в упомянутый ответ. Обратите внимание, что эта настройка касается s 22.06.2018

Ответы:


1

Решено:

  1. обновлен до 1.9
  2. выполнили шаги, описанные в этом комментарии
  3. # P2 #
    # P3 # # P4 #
    # P5 #
  4. запустил
    # P6 #

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

20.02.2018
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..