【发布时间】:2020-11-24 17:31:18
【问题描述】:
我在 GCP 中有一个 Composer/Airflow 实例(版本 composer-1.12.2-airflow-1.10.10),它可以可接受地运行其当前作业(大约 40 个 DAG,每个 DAG 有 6 个 Dataflow 作业,每个有 18 个其他较短的任务达格)。 Dataflow 作业从 Dataflow 模板(普通模板,不是 flex 模板)运行,通常需要大约 20 分钟才能完成,部分并行。我用pythonDataflowTemplatedJobStartOperator开始他们
如果我使用数据流选项--flexRSGoal=COST_OPTIMIZED,实例会阻塞。充其量,它设法在 CPU 使用率高的情况下,每分钟安排一个 Dataflow 作业在前 20 分钟内开始。这会导致任务累积,使其速度更慢,直到几乎停止调度。
flexRSGoal 设置是工作设置和问题设置之间的唯一区别。
我预计 DataflowTemplatedJobStartOperator 不能正确支持 Dataflow 作业在开始前一段时间处于“排队”状态的情况 - 或者我需要设置/调整一些其他参数才能使其正常工作。有人有想法吗?谢谢。
【问题讨论】:
-
您使用的是什么 Airflow 版本?
DataflowTemplatedJobStartOperator运算符的链接似乎与 composer (1.10.6, 1.10.9, 1.10.10,1.10.12) 中当前支持的 Airflow 版本不对应 -
啊,现在是 1.10.10。有没有更好的算子可以用?
-
我认为使用
DataflowTemplateOperator是一个好方法;但是,由于代码尚未准备好处理 QUEUED 状态,因此需要使用猴子补丁。在下面查看我的答案,希望对您有所帮助!
标签: google-cloud-dataflow airflow-scheduler google-cloud-composer airflow