airflow:错误:无法识别的参数-Airflow Scheduler错误

时间:2018-12-24 14:29:57

标签: airflow

我创建了一个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,但完全不同。此处的解决方案无关紧要。

请在这里告知问题所在

1 个答案:

答案 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行下方输出。