Airflow的并行性通常能够支持多个任务并行执行,但它可能不会在所有情况下扩展到更多的并行任务。出现这种问题的常见原因是由于Airflow任务调度器的配置被设置为运行在单个进程中,并不能支持多进程或多线程。这可以通过更改调度器的配置来解决。下面提供了一个示例,展示如何通过在调度器配置中添加worker_concurrency
限制,使其支持更多的并行任务。
在$AIRFLOW_HOME/airflow.cfg
文件中修改以下配置:
[core]
# ...
parallelism = 32
# ...
dag_concurrency = 16
# ...
[celery]
# ...
worker_concurrency = 8
# ...
在上述示例中,我们增加了worker_concurrency
配置项以增加任务并行度。并行度数值越大,任务的并行度就越高,同时也可以增加parallelism
和dag_concurrency
配置项的值以进一步提升并行度。这个解决方法可以帮助Airflow达到更好的并行扩展性,并更好地满足高吞吐量的工作流需求。