1

我在气流中创建了一个 DAG,它使用 test 和 backfill 命令成功运行,但是当我从气流 UI 手动运行它时出错。我的问题有什么解决办法吗?注意,DAG 在 LocalExecutor 中运行。

UI 气流中的错误日志:

*** Log file isn't local.
*** Fetching here: http://:8793/log/test/start/2017-10-31T09:14:32.378718
*** Failed to fetch log file from worker.

*** Reading remote logs...
*** Unsupported remote log location.

代码 DAG:

from airflow.models import DAG
from airflow.operators.dummy_operator import DummyOperator
from datetime import datetime, timedelta

DAG_NAME = 'test'
args = {
    'owner': 'airflow',
    'depends_on_past': False,
    'start_date': datetime(2017, 10, 17),
    'email': ['abc@abc.com'],
    'email_on_failure': False,
    'email_on_retry': False,
    'retries': 1,
    'retry_delay': timedelta(minutes=5),
}

with DAG(DAG_NAME, schedule_interval=timedelta(days=1),
         default_args=args) as dag:

    start = DummyOperator(
        task_id='start')

    end = DummyOperator(
        trigger_rule='one_success',
        task_id='end')

    start >> end

谢谢。

4

2 回答 2

0

如果 DAG 使用 test 和 backfill 命令成功运行,当我在 UI 中触发 dag 时,将其打开将起作用。 确保在触发之前打开 DAG

于 2019-05-04T15:26:01.823 回答
0

您的任务定义存在问题,您没有为它们分配任何 dag。在每个中添加 dag=dag ,它将起作用。例子:

start = DummyOperator( task_id='start', dag=dag)

end = DummyOperator( trigger_rule='one_success', task_id='end', dag=dag)

注意:通过检查工作日志,您会得到一个提示:““dag_stats.dag_id”上的 IN 谓词是用空序列调用的。这会导致矛盾,但评估起来可能很昂贵。

于 2017-11-06T20:54:48.330 回答