【问题标题】:CANCELing a YARN step in EMR在 EMR 中取消 YARN 步骤
【发布时间】:2021-04-07 10:13:28
【问题描述】:

我在 EMR 集群上运行了一个长时间运行的 YARN 应用程序。 基于Canceling EMR Steps,可以通过命令取消正在运行的步骤 aws emr cancel-steps 只要使用 Amazon EMR 版本 5.28.0 及更高版本(对我来说就是这种情况),但是当我针对我的运行步骤发出上述命令时,它永远不会杀死实际的纱线应用程序。 我可以在 UI 中看到将其状态更改为 Canceled 的步骤,但是如果我 ssh 进入 EMR 并执行 yarn application -list 我仍然可以很好地运行我的应用程序 :) 在我看到的日志中

INFO waitProcessCompletion ended with exit code 137 : hadoop jar /var/lib/aws/emr/step-runner/hadoop-...
INFO total process run time: 344 seconds
2020-12-30T23:13:42.362Z INFO Step created jobs: 
2020-12-30T23:13:42.362Z WARN Step failed with exitCode 137 and took 344 seconds

根据我的理解,这意味着容器确实收到了 SIGKILL 命令。 有人可以告诉为什么它仍然没有杀死应用程序吗?

P.S 我在执行 cancel-steps 命令时使用了 TERMINATE_PROCESS 取消选项。

谢谢!

【问题讨论】:

    标签: hadoop-yarn amazon-emr


    【解决方案1】:

    您可能想要查看的一个方面是提交步骤的集群与客户端模式。 如果您使用集群模式,则无法通过 AWS SDK 终止该步骤,因为它无法控制实际的 yarn 应用程序,为此您需要在客户端模式下运行您的步骤。

    还请检查在集群与客户端模式下运行的其他含义,如果您这样做是为了开发,那么使用客户端模式就可以了。

    【讨论】:

    • 是的。谢谢。我希望 SDK 有一些实现来执行此操作,但我最终编写了一个 shell 脚本并将其作为终止应用程序的步骤传递。不能做客户端模式,因为这是一个产品应用程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多