如何在Apache Airflow中配置并行任务(每次执行2个)
嘿,要把Airflow从串行改成每次跑2个任务的并行模式,其实调整几个核心配置就行,我给你拆解清楚:
核心配置调整(修改
airflow.cfg) 首先得确保你用的是支持并行的Executor(之前串行应该用的是SequentialExecutor,这个必须换掉),然后调整并行控制参数:
1. 切换到支持并行的Executor
打开airflow.cfg,找到[core] section下的executor参数,改成以下其中一个:
LocalExecutor:适合单机部署的场景CeleryExecutor:适合分布式部署的场景
[core] executor = LocalExecutor # 或者 CeleryExecutor,根据你的部署规模选
2. 设置全局并行任务上限
在[core] section里找到parallelism,这个是Airflow整个系统允许同时运行的最大任务数,至少设为2(如果后续想扩容可以设更大):
[core] parallelism = 2
3. 限制单个DAG的并行任务数
同样在[core] section,修改dag_concurrency,这个参数控制单个DAG能同时跑的任务数,直接设为2就能满足你“每次执行2个任务”的需求:
[core] dag_concurrency = 2
4. 针对CeleryExecutor的额外配置(如果用这个Executor)
如果选了CeleryExecutor,还要调整Celery worker的并发数,找到[celery] section的worker_concurrency:
[celery] worker_concurrency = 2
或者启动worker的时候通过命令行临时指定:
airflow celery worker --concurrency=2
额外要检查的点
- 确认你的DAG任务里没有设置
depends_on_past=True或者wait_for_downstream=True,这些参数会强制任务串行执行,如果业务不需要的话,把它们改成False - 检查
[core]里的max_active_runs_per_dag,这个控制单个DAG同时运行的实例数,不要设成0或者1(除非你只允许一个DAG实例跑),保持默认或者设为大于1的值就行
内容的提问来源于stack exchange,提问作者Mit
相关产品推荐
相关产品推荐

