【问题标题】:Airflow error during celery execution芹菜执行期间的气流错误
【发布时间】:2017-05-16 07:04:16
【问题描述】:

我们在 docker 实例中设置了带有 rabbitmq、mysql db 和 celery executor 的气流设置。 通过运行命令触发第一个单独的步骤/操作符,如下所示。

airflow run wfm_model_training_client_1_queue_11 fetch_top_funnel_data  2016-03-03

但是,当我们通过如下回填命令触发整个 dag 时,我们在 celery 执行期间遇到以下错误。显然这是 celery 的错误,但是我如何提取更多日志来调试它。

回填命令

airflow backfill wfm_model_training_client_1_queue_11 -s 2016-03-03 -e 2016-03-03

traceback 列中的 celery_taskmeta 表中的 Celery 错误

Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 367, in trace_task
    R = retval = fun(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/celery/app/trace.py", line 622, in __protected_call__
    return self.run(*args, **kwargs)
  File "/usr/lib/python2.7/site-packages/airflow/executors/celery_executor.py", line 59, in execute_command
    except subprocess.CalledProcessError as e:
AirflowException: Celery command failed

【问题讨论】:

    标签: python celery airflow


    【解决方案1】:

    错误是由于一些泡菜相关的问题。我通过将 --donot_pickle 参数传递给回填命令绕过了这个问题。

    已通过更新的命令解决

    airflow run wfm_model_training_client_1_queue_11 fetch_top_funnel_data  2016-03-03 --donot_pickle
    

    【讨论】:

    • 有没有办法将 celery 命令输出记录到 celery 后端数据库或任何日志文件。我必须手动编辑 celery python 文件以将实际错误记录到数据库
    猜你喜欢
    • 1970-01-01
    • 2017-09-08
    • 2012-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    相关资源
    最近更新 更多