【问题标题】:Airflow jobs setting the executor type to NoneType after upgrading to 1.10.6升级到 1.10.6 后,气流作业将执行器类型设置为 NoneType
【发布时间】:2020-01-26 04:53:40
【问题描述】:

我用 celery worker 配置了气流,而 celery 代理是 redis。所有服务都已启动,我正在通过花来监控芹菜工人和任务。

当我在气流数据库中运行此查询时

select count(*), executor_class, min(start_date), max(start_date) from airflow.job where
start_date > '2020-01-17' group by executor_class;

我看到很多工作的 executor_class 为 NoneType :

我已按照 1.10.6 文档中的要求配置了气流。但是自 2020-01-17 05:38 起,everyjob 已停止在 CeleryExecutor 上运行。这是气流升级的时间,它在从 1.10.1 升级到 1.10.6 后分配 NoneType。花中的监控还显示所有 celery 工作人员都处于活动状态,但他们没有通过代理发送任何消息。

气流配置

celery_app_name = airflow.executors.celery_executor
worker_concurrency = 16
worker_log_server_port = 8793
broker_url = redis://localhost:6379/0
result_backend = redis://localhost:6379/0
flower_host = 0.0.0.0
flower_port = 5555
default_queue = default
celery_config_options = airflow.config_templates.default_celery.DEFAULT_CELERY_CONFIG
executor = CeleryExecutor
dag_concurrency = 16
task_runner = StandardTaskRunner

我应该怎么做才能确保将作业分配给“CeleryExecutor”,以便 DAG 开始运行(如何让 celery 经纪人将这些任务分配给 celery 工人)?

【问题讨论】:

  • 我也遇到了同样的问题,你找到解决办法了吗?

标签: celery airflow airflow-scheduler celery-broker


【解决方案1】:

要解决这个问题,必须增加执行器的数量和并行化因子。将并行度设置为超过 250 可以解决问题,因为我们在 100 个活动 DAG 中有 1000 个任务。

【讨论】:

  • ozw1z5rd :请找到答案。是的,我找到了解决方案。
猜你喜欢
  • 2018-08-13
  • 2017-09-23
  • 2022-06-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多