You need to enable JavaScript to run this app. Celery Executor模式下Airflow实现3组worker节点定向任务分配咨询
优惠活动
大模型
产品
解决方案
定价
更多

Celery Executor模式下Airflow实现3组worker节点定向任务分配咨询

On-Prem Celery Executor 定向调度节点组配置方案

你当前使用的Celery Executor原生支持按任务指定目标执行节点范围的能力,可完全实现3组worker的定向调度,无需自定义调度逻辑。

核心实现逻辑

Celery Executor的调度基于队列路由机制,只需要给不同依赖环境的服务器绑定专属队列,再在DAG任务上指定对应队列,即可严格匹配任务到符合依赖的节点执行,替代原有SSH跳转的wrapper逻辑。

具体配置步骤

  • 第一步:按业务环境划分3组专属Celery Worker队列
    在对应依赖的服务器上启动Airflow worker时,显式绑定专属队列:
    • 无Spark依赖的非Spark服务器:启动命令添加-q non_spark_queue
    • 预装Spark二进制的计算服务器:启动命令添加-q spark_submit_queue
    • 预装GCP工具的专用服务器:启动命令添加-q gcp_push_queue
    • 注意:所有worker不要绑定默认的celery队列,避免任务被误调度到无对应依赖的节点上。
  • 第二步:DAG任务绑定对应队列
    每个Operator实例化时,直接通过queue参数指定对应队列名即可:
    • 非Spark逻辑任务使用的PythonOperator:实例化时传queue="non_spark_queue"
    • PySpark提交任务使用的SparkSubmitOperator:实例化时传queue="spark_submit_queue"
    • GCP推送任务使用的SFTPToGCSOperator:实例化时传queue="gcp_push_queue"
    • 简化配置:Airflow 2.0+ 支持在DAG定义时设置全局默认队列,特殊任务再覆盖队列参数,无需逐个任务重复编写队列配置。

替代SSH Wrapper的配套适配

  • 非Spark任务:worker本身部署在目标服务器上,PythonOperator直接本地执行业务逻辑即可,无需远程SSH跳转。
  • Spark提交任务:worker部署在预装Spark的服务器上,SparkSubmitOperator通过spark_binary参数指定本地Spark路径,直接提交作业,无需远程调用。
  • GCS推送任务:worker部署在有GCP依赖的专用服务器上,SFTPToGCSOperator配置好Spark节点生成文件的可达路径(共享存储/节点间文件同步路径)即可直接推送,无需多跳SSH。

扩展调度能力(可选)

如果后续需要更细粒度的单节点定向调度,还可以通过任务的executor_config参数配置Celery的专属hostname路由,指定任务只能在某一台具体的服务器上执行,当前3组节点的需求仅靠队列配置即可完全满足。


内容的提问来源于stack exchange,提问作者Rafa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.30 00:36:07