问题描述
我正在使用cloud composer composer-1.10.6-airflow-1.10.6
气流启动任务似乎似乎有问题,并且无法跟踪它们。日志停止,最终将其标记为失败,但实际上该任务成功完成。如果配置了重试,那么对于非幂等任务(例如,添加数据的任务),这是一个大问题。每当发生这种情况时,我都必须去手动调查任务是否确实完成,并相应地标记作业。
这是一个示例日志。这是此问题的典型日志。里面没有太多有用的信息,基本上它们看起来像是过早地结束了(因此感觉就像气流一样失去了工作的轨道)。同时,该工作仍成功完成。
*** Reading remote log from gs://bucket/log/path/log.log
[2020-08-31 12:16:33,450] {taskinstance.py:630} INFO - Dependencies all met for <TaskInstance: builder.launch_loader_prd 2020-08-30T10:30:00+00:00 [queued]>
[2020-08-31 12:16:33,569] {taskinstance.py:630} INFO - Dependencies all met for <TaskInstance: builder.launch_loader_prd 2020-08-30T10:30:00+00:00 [queued]>
[2020-08-31 12:16:33,571] {taskinstance.py:841} INFO -
--------------------------------------------------------------------------------
[2020-08-31 12:16:33,572] {taskinstance.py:842} INFO - Starting attempt 1 of 1
[2020-08-31 12:16:33,572] {taskinstance.py:843} INFO -
--------------------------------------------------------------------------------
[2020-08-31 12:16:33,605] {taskinstance.py:862} INFO - Executing <Task(DataflowTemplateOperator): launch_loader_prd> on 2020-08-30T10:30:00+00:00
[2020-08-31 12:16:33,608] {base_task_runner.py:133} INFO - Running: ['airflow','run','builder','launch_loader_prd','2020-08-30T10:30:00+00:00','--job_id','449104','--pool','default_pool','--raw','-sd','DAGS_FOLDER/mydag.py','--cfg_path','/tmp/tmpmzlheavp']
感谢您的帮助。谢谢。
解决方法
您共享的日志似乎是任务开始的预期日志。如果任务失败,并且在一段时间后被标记为失败,我将检查是否存在类似于以下内容的日志:
Executor reports task instance <TaskInstance: YOUR_TASK 2020-08-31 10:30:00+00:00 [queued]> finished (failed) although the task says its queued. Was the task killed externally?
。
在Stackdriver中检查此类日志,以获取有关为什么将任务标记为失败的更多信息。
现在,关于问题本身,我可以看到您正在执行DataflowTemplateOperator
,可能发生的情况是,由于某些问题,该任务无法从Dataflow中获取状态(请参见example)失败,或者该任务最终因等待作业完成而超时,并被标记为失败(如果是这种情况,您将在日志中看到“超时”消息)。增加任务执行的超时时间。
在这两种情况下,我的建议都是直接在Stackdriver中查找日志,以获取有关任务的更多信息。
如果问题不仅与DataflowTemplateOperator
有关,而且与任何任务有关,那么我将检查群集的整体状态,以查看是否有因迁出荚果或类似问题而出现任何错误。