Airflow 气流1.10.0 branchpythonoperator运行失败:芹菜命令失败
我将气流dag示例示例分支dop操作器代码复制到我自己的dag test1\u v2,我可以成功运行示例分支dop操作器,但运行test1\u v2失败。 dag test1_v2代码\u HOME/dags/test1.py:Airflow 气流1.10.0 branchpythonoperator运行失败:芹菜命令失败,airflow,Airflow,我将气流dag示例示例分支dop操作器代码复制到我自己的dag test1\u v2,我可以成功运行示例分支dop操作器,但运行test1\u v2失败。 dag test1_v2代码\u HOME/dags/test1.py: import airflow from airflow.operators.python_operator import BranchPythonOperator from airflow.operators.dummy_operator import DummyOpe
import airflow
from airflow.operators.python_operator import BranchPythonOperator
from airflow.operators.dummy_operator import DummyOperator
from airflow.models import DAG
args = {
'owner': 'airflow',
'start_date': airflow.utils.dates.days_ago(2),
'depends_on_past': True,
}
dag = DAG(dag_id='test1_v2'
schedule_interval='*/1 * * * *', default_args=args)
def should_run(ds, **kwargs):
print('------------- exec dttm = {} and minute = {}'.
format(kwargs['execution_date'], kwargs['execution_date'].minute))
if kwargs['execution_date'].minute % 2 == 0:
return "oper_1"
else:
return "oper_2"
cond = BranchPythonOperator(
task_id='condition',
provide_context=True,
python_callable=should_run,
dag=dag)
oper_1 = DummyOperator(
task_id='oper_1',
dag=dag)
oper_1.set_upstream(cond)
oper_2 = DummyOperator(
task_id='oper_2',
dag=dag)
oper_2.set_upstream(cond)
命令气流运行test1_v2条件2018-09-01 00:00:00,有工作日志:
[2018-10-11 21:20:29991]{cli.py:492}信息-在主机上运行
[2018-10-11 21:23:10879]{settings.py:174}INFO-setting.configure_orm:使用池设置。池大小=5,池回收=1800
[2018-10-11 21:23:11343]{init.py:51}信息-使用executor CeleryExecutor
[2018-10-11 21:23:11572]{cli.py:478}信息-加载pickle id 26
回溯最近一次呼叫上次:
文件/home/airflow/airflow/venv/bin/airflow,第32行,in
args.funcargs
文件/home/afflow/afflow/venv/lib/python3.5/site-packages/afflow/utils/cli.py,第74行,在包装器中
返回f*args,**kwargs
文件/home/afflow/afflow/venv/lib/python3.5/site-packages/afflow/bin/cli.py,第480行,运行中
DagPickle.filterDagPickle.id==args.pickle.first
文件/home/afflow/afflow/venv/lib/python3.5/site-packages/sqlalchemy/orm/query.py,第2755行,第一行
ret=listself[0:1]
getitem中的文件/home/airflow/airflow/venv/lib/python3.5/site-packages/sqlalchemy/orm/query.py,第2547行
返回列表
文件/home/afflow/afflow/venv/lib/python3.5/site-packages/sqlalchemy/orm/loading.py,第90行,在实例中
util.raise\u from\u causeerr
文件/home/aiffair/aiffair/venv/lib/python3.5/site-packages/sqlalchemy/util/compat.py,第203行,从原因开始
reraisetypeexception,exception,tb=exc_tb,cause=cause
文件/home/afflow/afflow/venv/lib/python3.5/site-packages/sqlalchemy/util/compat.py,第187行,在reraise中
增值
文件/home/afflow/afflow/venv/lib/python3.5/site-packages/sqlalchemy/orm/loading.py,第75行,在实例中
rows=[prorow for fetch中的行]
文件/home/afflow/afflow/venv/lib/python3.5/site-packages/sqlalchemy/orm/loading.py,第75行,in
rows=[prorow for fetch中的行]
文件/home/afflow/afflow/venv/lib/python3.5/site-packages/sqlalchemy/orm/load.py,第452行,在_实例中
已加载的\u实例、填充\u现有、填充器
文件/home/afflow/afflow/venv/lib/python3.5/site-packages/sqlalchemy/orm/loading.py,第513行,完全填充
dict_[key]=getterrow
文件/home/afflow/afflow/venv/lib/python3.5/site-packages/sqlalchemy/sql/sqltypes.py,第1540行,正在处理中
返回加载值
文件/home/afflow/afflow/venv/lib/python3.5/site-packages/dill//u dill.py,第316行,加载中
返回loadfile,忽略
文件/home/afflow/afflow/venv/lib/python3.5/site-packages/dill//u dill.py,第304行,已加载
obj=pik.load
文件/home/afflow/afflow/venv/lib/python3.5/site-packages/dill//u dill.py,第465行,在find_类中
return StockUnpickler.find_classself、模块、名称
导入错误:没有名为“异常前缀”的模块d47cb71ac291be245f60c8ac0070d906f4627fa1\U测试1
[2018-10-11 21:23:11823:ERROR/ForkPoolWorker-6]execute_命令遇到被调用的进程错误
回溯最近一次呼叫上次:
文件/home/aiffair/aiffair/venv/lib/python3.5/site-packages/aiffair/executors/celery_executor.py,第60行,在execute_命令中
关闭_fds=True,env=env
文件/data/python35/lib/python3.5/subprocess.py,第271行,在check_调用中
引发被调用的进程错误代码,cmd
subprocess.CalledProcessError:命令“气流运行测试1_v1条件2018-09-01T10:00:00+08:00-pickle 26-本地”返回非零退出状态1
[2018-10-11 21:23:11895:ERROR/ForkPoolWorker-6]无
[2018-10-11 21:23:12103:ERROR/ForkPoolWorker-6]任务气流执行器芹菜执行器执行命令[efb4ef09-bdf8-4123-85c8-4dc73dc19d74]引发意外:气流异常“芹菜命令失败”,
回溯最近一次呼叫上次:
文件/home/aiffair/aiffair/venv/lib/python3.5/site-packages/aiffair/executors/celery_executor.py,第60行,在execute_命令中
关闭_fds=True,env=env
文件/data/python35/lib/python3.5/subprocess.py,第271行,在check_调用中
引发被调用的进程错误代码,cmd
subprocess.CalledProcessError:命令“气流运行测试1_v1条件2018-09-01T10:00:00+08:00-pickle 26-本地”返回非零退出状态1
在处理上述异常期间,发生了另一个异常:
回溯最近一次呼叫上次:
文件/home/aiffair/aiffair/venv/lib/python3.5/site-packages/芹菜/app/trace.py,第375行,在trace_任务中
R=retval=fun*args,**kwargs
文件/home/afflow/afflow/venv/lib/python3.5/site-packages/芹菜/app/trace.py,第632行,在受保护的_调用中
返回self.run*args,**kwargs
文件/home/aiffair/aiffair/venv/lib/python3.5/site-packages/aiffair/executors/celery_executor.py,第65行,在execute_命令中
raise AirflowException“芹菜命令失败”
airflow.Exception.AirflowException:芹菜命令失败
为什么dag测试2_v1会失败?谢谢。当我使用python_callable=range替换python_callable=should_run时,成功地运行了这个dag,所以我猜原因是气流找不到should_run,正如日志ImportError中所示:没有名为“异常前缀”的模块d47cb71ac291be245f60c8ac0070d906f4627fa1_test1
解决办法是: 如果您使用命令,您应该使用test1_v2-s 20180901-e 20180902-x 在气流调度器触发的情况下不存在此类问题