Google cloud platform Google Composer-气流:我的任务未安排
我正在使用Airflow and Cloud Composer,因为我在Airflow Scheduler上遇到了一些问题(速度慢或停止) 版本:composer-1.10.4-airflow-1.10.6 我用气流启动了一个“大”收集(因为我有时需要它),以测试我的管道的可伸缩性。 结果是,我的调度程序显然只调度任务很少的DAG,而大DAG的任务没有调度。你对此有什么见解或建议吗 以下是有关我当前配置的信息: 群集配置:Google cloud platform Google Composer-气流:我的任务未安排,google-cloud-platform,airflow,gcloud,google-cloud-composer,Google Cloud Platform,Airflow,Gcloud,Google Cloud Composer,我正在使用Airflow and Cloud Composer,因为我在Airflow Scheduler上遇到了一些问题(速度慢或停止) 版本:composer-1.10.4-airflow-1.10.6 我用气流启动了一个“大”收集(因为我有时需要它),以测试我的管道的可伸缩性。 结果是,我的调度程序显然只调度任务很少的DAG,而大DAG的任务没有调度。你对此有什么见解或建议吗 以下是有关我当前配置的信息: 群集配置: 10个群集节点,20个VCPU,160Go内存 气流配置: 核心
- 10个群集节点,20个VCPU,160Go内存
- 存储序列化的数据集:True
- dag_并发:160
- store_dag_代码:True
- 最小文件处理间隔:30
- 每个dag的最大活动运行次数:1
- dagbag\u导入\u超时:900
- 最小序列化数据更新间隔:30
- 平行度:160
- 处理器轮询间隔:1
- 最大线程数:8
- dag目录列表间隔:30
- worker\u并发:16
- 默认数据运行显示编号:5
- 工人:2名
- 工作线程刷新间隔:120
---------------+--------------------+---------+----------+-----------------------
file | duration | dag_num | task_num | dags
---------------+--------------------+---------+----------+-----------------------
/folder__dags/dag1 | 1.83547 | 1 | 1554 | dag1
/folder__dags/dag2 | 1.717692 | 1 | 3872 | dag2
/folder__dags/dag3 | 1.53 | 1 | 3872 | dag3
/folder__dags/dag4 | 1.391314 | 1 | 210 | dag4
/folder__dags/dag5 | 1.267788 | 1 | 3872 | dag5
/folder__dags/dag6 | 1.250022 | 1 | 1554 | dag6
/folder__dags/dag7 | 1.0973419999999998 | 1 | 2904 | dag7
/folder__dags/dag8 | 1.081566 | 1 | 3146 | dag8
/folder__dags/dag9 | 1.019032 | 1 | 3872 | dag9
/folder__dags/dag10 | 0.98541 | 1 | 1554 | dag10
/folder__dags/dag11 | 0.959722 | 1 | 160 | dag11
/folder__dags/dag12 | 0.868756 | 1 | 2904 | dag12
/folder__dags/dag13 | 0.81513 | 1 | 160 | dag13
/folder__dags/dag14 | 0.69578 | 1 | 14 | dag14
/folder__dags/dag15 | 0.617646 | 1 | 294 | dag15
/folder__dags/dag16 | 0.588876 | 1 | 210 | dag16
/folder__dags/dag17 | 0.563712 | 1 | 160 | dag17
/folder__dags/dag18 | 0.55615 | 1 | 726 | dag18
/folder__dags/dag19 | 0.553248 | 1 | 140 | dag19
/folder__dags/dag20 | 0.55149 | 1 | 168 | dag20
/folder__dags/dag21 | 0.543682 | 1 | 168 | dag21
/folder__dags/dag22 | 0.530684 | 1 | 168 | dag22
/folder__dags/dag23 | 0.498442 | 1 | 484 | dag23
/folder__dags/dag24 | 0.46574 | 1 | 14 | dag24
/folder__dags/dag25 | 0.454656 | 1 | 28 | dag25
/create_conf | 0.022272 | 1 | 20 | create_conf
/airflow_monitoring | 0.006782 | 1 | 1 | airflow_monitoring
---------------+--------------------+---------+----------+------------------------
感谢您的帮助Airflow scheduler在循环调度算法中处理DAGs目录中的文件,这可能会导致任务之间的长时间延迟,因为在其循环返回到封闭的DAG模块之前,计划程序将无法将依赖项最近已完成的任务排队。可以在同一个Python模块中定义多个DAG对象,但从故障隔离的角度来看,通常不鼓励这样做。可能需要为每个模块定义多个DAG
- 有时,最好的方法是重新启动调度程序:
- 获取集群凭据,如中所述
- 运行以下命令以重新启动计划程序:
kubectl获取部署气流调度器-o yaml | kubectl替换-force-f-
此外,请重新启动Airflow web服务器。有时,损坏、无效或资源密集型DAG会导致Web服务器崩溃、重新启动或完全停机。一种方法是从您的环境中删除或升级一个PyPI包
- 超过API使用限制/配额
- 检查
->日志部分中的日志
,并查找任何错误或警告,如:云编写器环境
,无法导入模块
在DagModel中找不到DagNotFound
我希望以上信息对您有用。谢谢您的回答,这里有很多信息!有几点:-由于facts中的调度问题,我为每个.py文件创建了一个DAG。这样做效果更好-我不认为我必须重新启动调度程序,因为它调度我的小DAG的每个任务(100~1000个任务),任务运行没有任何问题,但它不调度大DAG。-我的Web服务器没有崩溃(我有,但现在已经解决了)-配额没有问题,因为根本没有计划任务-如果有其他问题,我会检查日志-自动缩放是一个有趣的技巧,一旦发现有趣的东西,请告诉我,等待响应!