如何使用 SSHOperator 在气流中停止 yarn 上的 spark-submit 作业

How can I stop spark-submit jobs on yarn in airflow with SSHOperator

我使用 airflow 版本 2.1.0,这是我的代码:

task1 = SSHOperator(
ssh_hook=sshHook,
task_id='test_spark,
do_xcom_push=False,
command=command spark submit)

我在本地模式下提交并终止它 -> 工作正常。但是我 运行 在模式 yarn 上当我在 UI 气流上杀死它时它不起作用。谁能帮我?感谢阅读。

如果你运行它在 yarn 上,你需要使用应用程序的应用程序 ID 执行 yarn 命令。

纱线命令本身是:

yarn application -kill enter_application_id

所以你应该尝试像这样的东西:

task1 = SSHOperator(
    ssh_hook=sshHook,
    task_id='test_spark,
    do_xcom_push=False,
    command=yarn application -kill enter_application_id)

有关更多信息,yarn 是一个资源协商器,airlfow 是一个编排工具。当您单击 UI 时,您会终止编排工具(气流)上的任务,但是将您的作业节点实例化为 运行 的纱线并不知道这一点。因此你需要注意你想要杀死工作的纱线。