气流dag bash任务滞后于远程执行

时间:2017-06-06 19:29:01

标签: python scheduling directed-acyclic-graphs airflow

我正在试验Airflow来取代我们现有的cron编排,一切看起来都很有希望。我已成功安装并获得了一个待安排和执行的dag,但我注意到它们是我指定的每个任务之间的显着延迟(至少15分钟到60分钟)。

我的dag定义如下

我错过了让他们一个接一个地跑一个的东西吗?

我没有使用芹菜 调度程序和Web服务器都在同一主机上运行 是的 - 需要调用远程执行(直到那时在某种形式的本地工作) 并且无法在远程服务器上安装气流 Dag应该每天在UTC时间凌晨1点运行一次,按照我给出的任务的设定路径。

import airflow
from builtins import range
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from airflow.models import DAG
from datetime import datetime, timedelta

args = {
    'owner': 'user1',
    'depends_on_past': False,
    'start_date': airflow.utils.dates.days_ago(2),
    'email': ['data-etl-errors@user1.com'],
    'email_on_failure': True,
    'email_on_retry': False,
    'wait_for_downstream': True,
    'schedule_interval': None,
    'depends_on_past': True,
    'retries': 1,
    'retry_delay': timedelta(minutes=5)
}

 dag = DAG(
       dag_id='airflow_pt1'
     , default_args=args
     , schedule_interval='0 1 * * *'
     , dagrun_timeout=timedelta(hours=8))

 task1 = BashOperator(
       task_id='task1'
     , bash_command='ssh user1@remoteserver /path/to/remote/execution/script_task1.sh'
     , dag=dag,env=None, output_encoding='utf-8')

 task2 = BashOperator(
       task_id='task2'
     , bash_command='ssh user1@remoteserver /path/to/remote/execution/script_task2.sh'
     , dag=dag,env=None, output_encoding='utf-8')

 task3 = BashOperator(
       task_id='task3'
     , bash_command='ssh user1@remoteserver /path/to/remote/execution/script_task3.sh'
     , dag=dag,env=None, output_encoding='utf-8')

 task4 = BashOperator(
       task_id='task4'
     , bash_command='ssh user1@remoteserver /path/to/remote/execution/script_task4.sh'
     , dag=dag,env=None, output_encoding='utf-8')

 task2.set_upstream(task1)
 task3.set_upstream(task1)
 task4.set_upstream(task2)

注意我没有执行气流回填(这很重要吗?)

1 个答案:

答案 0 :(得分:1)

发现了这个问题 我没有在airflow.cfg文件

中将配置从sequential更改为localExecutor

我通过https://stlong0521.github.io/20161023%20-%20Airflow.html

找到了答案

并观看https://www.youtube.com/watch?v=Pr0FrvIIfTU

中的详细视频