我是气流的新手,我们有一个有3个任务的DAG。目前我们正在使用Celery Executor,因为我们需要灵活地运行单个任务。我们不想安排工作流程,现在它将是手动触发器。有没有办法使用Airflow UI执行整个工作流程(与我们在oozie中的相同)?
一次执行一项任务很痛苦。
答案 0 :(得分:6)
在Airflow 1.8及更高版本中,仪表板上的每个dag都有一个按钮,看起来像一个播放按钮:
在旧版Airflow中,您可以使用以下对话框:
Browse -> Dag Runs -> Create
任何一方都应该从用户界面开始唠叨。
答案 1 :(得分:0)
我会对它进行一次尝试,希望您可以调整代码来使用它。
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2015, 6, 1),
'email': ['airflow@airflow.com'],
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
# 'queue': 'bash_queue',
# 'pool': 'backfill',
# 'priority_weight': 10,
# 'end_date': datetime(2016, 1, 1),
}
dag = DAG('your_dag', default_args=default_args)
#start of your tasks
first_task = BashOperator(task_id='print_date',
bash_command='python script1_name args',
dag=dag)
second_task = BashOperator(task_id='print_date',
bash_command='python script2_name args',
dag=dag)
third_task = BashOperator(task_id='print_date',
bash_command='python script_name args',
dag=dag)
#then set the dependencies
second_task.set_upstream(first_task)
third_task.set_upstream(second_task)
然后,当您触发DAG时,所有三个任务都将按顺序运行。如果这些任务不彼此依赖,则可以从脚本中删除set_upstream()
行。请注意,所有这些任务必须位于同一脚本中才能使用一个命令运行。