运行`airflow scheduler`启动33个调度程序进程

当使用具有MySQL后端的LocalExecutor时,在我的Centos 6盒上运行气流调度程序会创建33个调度程序进程,例如

部署55362 13.5 1.8 574224 73272? Sl 18:59 7:42 /usr/local/bin/python2.7 /usr/local/bin / airflow scheduler
部署55372 0.0 1.5 567928 60552? Sl 18:59 0:00 /usr/local/bin/python2.7 /usr/local/bin / airflow scheduler
部署55373 0.0 1.5 567928 60540? Sl 18:59 0:00 /usr/local/bin/python2.7 /usr/local/bin / airflow scheduler

这些与Executor进程和gunicorn master和worker进程截然不同.
使用SequentialExecutor(sqlite后端)运行它只需启动一个调度程序进程.
气流仍然有效(DAG正在运行),但这些过程的绝对数量让我觉得有些不对劲.
当我运行select * from job where state =’running’;在数据库中,只返回5个SchedulerJob行.
这是正常的吗?

解决方法:

是的,这是正常的.这些是调度程序进程.您可以使用airflow.cfg中的以下参数来控制它

# The amount of parallelism as a setting to the executor. This defines
# the max number of task instances that should run simultaneously
# on this airflow installation
parallelism = 32

这些是从调度程序生成的,调度程序的pid可以在airflow-scheduler.pid文件中找到

你看到32 1 = 33个进程.

希望这能清除你的怀疑.

干杯!

上一篇:Airflow BashOperator不起作用,但PythonOperator也可以


下一篇:python-气流DAG-如何首先检查BQ(如有必要,请删除),然后运行数据流作业?