运行Airflow DAG的问题

时间:2017-05-15 18:07:04

标签: python airflow

我一直在研究Apache Airflow一段时间来安排我的工作流程。我似乎在安排我的DAG时遇到问题。我一直在使用这个SO问题作为参考:Airflow not scheduling Correctly Python

from airflow import DAG 
from airflow.operators.bash_operator import BashOperator
from datetime import datetime
from datetime import timedelta

default_args = {
    'owner': 'airflow',
    'depends_on_past': False,
'start_date': datetime.now() - timedelta(minutes=5),
'email': ['airflow@airflow.com'],
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5),
}

 dag = DAG('dag_mkdir_folder', default_args=default_args,
      schedule_interval=timedelta(minutes=5))


 task_hello = BashOperator(task_id='print_hello',
                      bash_command='mkdir test_airflow', dag=dag)

我尝试使用以下命令列表运行任务:

 airflow scheduler
 airflow trigger_dag dag_mkdir_folder

我一直认为这是一个错误:

[2017-05-15 13:49:06,688] {models.py:322} DagFileProcessor406 INFO -      Finding 'running' jobs without a recent heartbeat
[2017-05-15 13:49:06,689] {models.py:328} DagFileProcessor406 INFO -   Failing jobs without heartbeat after 2017-05-15 13:44:06.689284

bash命令只是创建一个新目录。测试版工作正常。

2 个答案:

答案 0 :(得分:0)

在另一个终端上运行调度程序,然后在另一个终端中触发你的dag

还尝试提供您要创建目录的完整路径。 例如,在气流目录中创建文件夹:

<div class="form-group radio_buttons optional quote_prev_cover">
  <label class="control-label radio_buttons optional">Previous cover</label>
    <input name="quote[prev_cover]" value="" type="hidden">
        <span class="radio">
            <label for="quote_prev_cover_true">
                <input class="radio_buttons optional" value="true" name="quote[prev_cover]" id="quote_prev_cover_true" type="radio">Yes</label>
        </span>
        <span class="radio">
            <label for="quote_prev_cover_false">
                <input class="radio_buttons optional" readonly="readonly" value="false" name="quote[prev_cover]" id="quote_prev_cover_false" type="radio">No</label>
        </span>
    </div>

这应该在气流中创建test_airflow文件夹

答案 1 :(得分:0)

您当前的bash_command告诉Airflow在DAG运行时使用的临时目录内创建一个目录,在DAG运行后它会随其所有内容一起消失。

考虑将目录更改为您要在其中创建目录的目录。

使用它的bash_command类似于:

"cd <path_to_directory>; mkdir test_airflow"