我创建了一个DAG,如下所示:
args = {
'owner': 'airflow',
'start_date': datetime(2018, 12, 30),
'retries': 5,
'retry_delay': timedelta(minutes=30)
}
dag = DAG(
dag_id='TEST',
default_args=args,
schedule_interval=timedelta(minutes=30),
max_active_runs=1,
catchup=False)
task_op = DummyOperator(task_id='task', dag=dag)
将其另存为my_test.py
,并将其上传到DAG文件夹。
从UI中手动启动DAG,但DAG已排队,但任务立即失败。没有任务的日志,但显示调度程序日志。
usage: airflow [-h]
{resetdb,render,variables,connections,pause,task_failed_deps,version,trigger_dag,initdb,test,unpause,dag_state,run,list_tasks,backfill,list_dags,kerberos,worker,webserver,flower,scheduler,task_state,pool,serve_logs,clear,upgradedb}
...
airflow: error: unrecognized arguments: my_test.py
我以前从未遇到过。有什么问题吗?
存在类似的问题airflow: error: unrecognized arguments: webserver,但完全不同。此处的解决方案无关紧要。
请在这里告知问题所在
答案 0 :(得分:1)
我认为您应该grep -r 'ArgumentParser' path/to/dags_folder
来确认这与您找到的另一个问题和答案不一样。如果没有更多上下文,似乎此消息似乎不会由调度的dag_run在调度程序的日志中生成,而是由dagbag的dag解析循环生成。
之所以这样说,是因为您与以下添加的导入共享的DAG在我的1.10安装中正常工作。
from airflow.models import DAG
from airflow.operators.dummy_operator import DummyOperator
from datetime import datetime, timedelta
也许值得一看:AIRFLOW-270,其中目录名称中的空格导致此类异常;我不认为这是您的经历,但是值得排除。报告还显示,在v1.7中,错误的前几行将记录失败的完整命令,例如:
Command 'airflow run cleanup_test select_users 2016-08-03T18:20:38.308518 --local -sd DAGS_FOLDER/Test DAG/test.py ' returned non-zero exit status 2 airflow: error: unrecognized arguments: DAG/test.py [2016-08-03 18:39:54,971: ERROR/MainProcess] Task airflow.executors.celery_executor.execute_command[624cf49c-e765-468e-9227-fd2941ddb779] raised unexpected: AirflowException('Celery command failed',)
在AIRFLOW-2119中,它表明在v1.9中,失败的原始命令在airflow: error: unrecognized arguments
行下方输出。