微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 EMR 中取消 YARN 步骤

如何解决在 EMR 中取消 YARN 步骤

我在 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 取消选项。

谢谢!

解决方法

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。