Apache spark 无法正常完成气流DAG

Apache spark 无法正常完成气流DAG,apache-spark,spark-streaming,airflow,Apache Spark,Spark Streaming,Airflow,我有一个spark streaming作业,它在EMR上运行,由Airflow计划。我们希望每周优雅地终止此EMR群集 但是,当我向正在运行的spark streaming应用程序发出kill或SIGTERM信号时,它在DAG中报告为“失败”任务。这将阻止DAG进一步移动,防止触发下一次运行 有没有办法杀死正在运行的spark streaming应用程序以标记成功,或者让DAG完成任务,即使它认为任务失败 是否有任何方法可以杀死正在运行的spark流媒体应用程序以标记成功,或者让DAG完成任务,

我有一个
spark streaming
作业,它在EMR上运行,由Airflow计划。我们希望每周优雅地终止此EMR群集

但是,当我向正在运行的
spark streaming
应用程序发出
kill
SIGTERM
信号时,它在DAG中报告为“失败”任务。这将阻止DAG进一步移动,防止触发下一次运行

有没有办法杀死正在运行的
spark streaming
应用程序以标记成功,或者让DAG完成任务,即使它认为任务失败

是否有任何方法可以杀死正在运行的spark流媒体应用程序以标记成功,或者让DAG完成任务,即使它认为任务失败

第一部分,你能分享你杀死Spark应用程序的代码吗?我认为你应该能够让这项任务返回成功,让下游的一切都“正常工作”

我对EMR不太熟悉,但看看文档,看起来“工作流程”是Spark cluster的名字。在这种情况下,您是否在使用内置的
emrterminatejobflow操作符

我想知道失败的任务是群集终止传播回错误代码还是什么?另外,集群是否可能无法终止,并且您的代码引发异常导致任务失败

为了回答第二部分的问题,如果您有多个上游任务,您可以在操作符上使用备用触发规则来确定运行哪些下游任务

类触发器规则(对象):
全部成功=‘全部成功’
ALL_FAILED='ALL_FAILED'
全部完成='全部完成'
一次成功=‘一次成功’
ONE_FAILED='ONE_FAILED'
DUMMY='DUMMY'

是否有任何方法可以杀死正在运行的spark流媒体应用程序以标记成功,或者让DAG完成任务,即使它认为任务失败

第一部分,你能分享你杀死Spark应用程序的代码吗?我认为你应该能够让这项任务返回成功,让下游的一切都“正常工作”

我对EMR不太熟悉,但看看文档,看起来“工作流程”是Spark cluster的名字。在这种情况下,您是否在使用内置的
emrterminatejobflow操作符

我想知道失败的任务是群集终止传播回错误代码还是什么?另外,集群是否可能无法终止,并且您的代码引发异常导致任务失败

为了回答第二部分的问题,如果您有多个上游任务,您可以在操作符上使用备用触发规则来确定运行哪些下游任务

类触发器规则(对象):
全部成功=‘全部成功’
ALL_FAILED='ALL_FAILED'
全部完成='全部完成'
一次成功=‘一次成功’
ONE_FAILED='ONE_FAILED'
DUMMY='DUMMY'