首页 > 解决方案 > 虚拟操作员失败,状态为:upstream_failed

问题描述

我有一个创建 EMR 集群的 dag,如下所示:

STEP_CONFIG = dict(
    CLASS="fooA",
    JAR=DEFAULT_JAR,
    PROPERTIES="fooA.properties",
    ACTION_ON_FAILURE="CONTINUE"
)


DEFAULT_ARGS['start_date'] = dt.datetime(2019, 12, 18)

with DAG(
        DAG_NAME,
        default_args=DEFAULT_ARGS,
        dagrun_timeout=dt.timedelta(hours=2),
        schedule_interval='@daily',
        catchup=False
) as dag:
    compose_dag_for_ltc(LONG_TERM_CLUSTER_NAME, JOB_NAME, STEP_CONFIG)

add_step >> step_added >> watch_step >> all_steps_finished

dag 成功创建 EMR 集群并添加所有步骤,但有时会发生 all_steps_finished 任务失败,状态为:upstream_failed。故障不在 EMR 侧,而是在气流侧。它也不会产生任何日志,这使得诊断变得更加困难。有什么想法可能在这里发生吗?

标签: airflow

解决方案


由于您在旧 Airflow 版本上运行,这可能是一个稍后修复的错误。没有充分的理由来解释您正在经历的事情。

在 Airflow 2DummyOperator中,任何从它继承的操作员都不会被调度程序考虑执行(如果它没有实际工作要做),请参阅源代码,在这种情况下,任务将简单地标记为成功。所以我能说的是,当您升级到 Airflow 2 时,问题很可能会得到解决。


推荐阅读