Невозможно определить проблему с ошибкой задачи DAG GCP Composer (Airflow) - PullRequest
1 голос
/ 07 апреля 2020

Я новичок в использовании Apache Воздушный поток. Некоторые операторы моего dag имеют статус сбой. Я пытаюсь понять причину ошибки.

Вот подробности проблемы: у меня довольно большой даг, и некоторые его части состоят из под-дагов. Что я заметил в Composer UI, так это то, что Subdags, которые потерпели неудачу, все сделали в task_id с именем download_file, который использует XCom с GoogleCloudStorageDownloadOperator.


>> GoogleCloudStorageDownloadOperator(
    task_id='download_file',
    bucket="sftp_sef",
    object="{{task_instance.xcom_pull(task_ids='find_file') | first }}",
    filename="/home/airflow/gcs/data/zips/{{{{ds_nodash}}}}_{0}.zip".format(table)
)

Журналы в упомянутом субдаге ничего полезного не показывают.

LOG:

[2020-04-07 15: 19: 25,618] {models.py:1359} ИНФОРМАЦИЯ - все зависимости были выполнены для [2020-04-07 15: 19: 25,660] {models.py:1359} INFO - все зависимости, встречающиеся для [2020-04-07 15: 19: 25,660] {models.py:1577} INFO -

------ -------------------------------------------------- ----------------------- Стартовая попытка 10 из 1

[2020-04-07 15: 19: 25,685] {models.py : 1599} INFO - Выполнение в 2020-04-06T11: 44: 31 + 00: 00 [2020-04-07 15: 19: 25,685] {base_task_runner.py:118} INFO - Выполнение: ['bash', '- c', 'airflow run datamart_integration.consentement_email download_file 2020-04-06T11: 44: 31 + 00: 00 --job_id 156313 - объединение пула --raw -sd DAGS_FOLDER / datamart / datamart_integration.py --cfg_path / tmp / tmpacazgnve ']

Я не уверен, есть ли место, где я не проверяю ... Вот мои вопросы:

  1. Как отлаживать ошибки в мои Composer DAGs в целом
  2. Это хорошая идея для создания локальной среды воздушного потока для запускать и отлаживать свои пакеты локально?
  3. Как проверить, есть ли ошибки в XCom?

1 Ответ

2 голосов
/ 08 апреля 2020

Относительно ваших трех вопросов:

Первый , при использовании Cloud Composer у вас есть несколько способов отладки ошибок в вашем коде. Согласно документации , вы должны:

  1. Проверить журналы воздушного потока.

Эти журналы связаны с отдельными задачами DAG. Их можно просмотреть в папке журналов Cloud Storage и в интерфейсе Web Airflow.

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

Что касается веб-интерфейса Airflow, он обновляется каждые 60 секунд. Также вы можете проверить больше об этом здесь .

Просмотрите набор операций Google Cloud.

Вы можете использовать Cloud Monitoring и Cloud Logging с Cloud Composer. В то время как Cloud Monitoring обеспечивает визуальное представление о производительности и общей работоспособности облачных приложений, Cloud Logging отображает журналы, которые создают планировщик и рабочие контейнеры. Таким образом, вы можете использовать оба или только тот, который вы считаете более полезным в зависимости от ваших потребностей.

В Cloud Console проверьте наличие ошибок на страницах компонентов Google Cloud, работающих в вашей среде.

В веб-интерфейсе Airflow проверьте в Графическом представлении DAG на наличие неудачных экземпляров задачи.

Таким образом, это шаги, рекомендуемые при поиске и устранении неисправностей вашей группы DAG.

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

Кроме того, можно проверить свою группу обеспечения доступности баз данных локально, в документации по этой теме есть учебное пособие c, здесь . Локальное тестирование позволяет идентифицировать ошибки синтаксиса и задачи. Тем не менее, я должен указать, что не будет возможности проверить / оценить зависимости и связь с базой данных.

Третий , вообще, чтобы проверить ошибки в Xcom, вы должны проверить :

  • Если есть какой-либо код / ​​номер ошибки;
  • Проверьте с помощью примера кода из документации, правильный ли ваш синтаксис;
  • Проверьте, если пакеты они устарели;

Я хотел бы указать, что согласно этой документации путь к GoogleCloudStorageDownloadOperator был обновлен до GCSToLocalOperator .

Кроме того, я также призываю вас взглянуть на это: код и документация для проверки синтаксиса и ошибок Xcom.

Не стесняйтесь поделиться кодом ошибки со мной, если вам нужна дополнительная помощь.

...