如果作业花费的时间超过预期,请终止 Spark 作业或终止 EMR 集群



我有一个定期挂起的 Spark 作业,使我的 AWS EMR 集群处于应用程序正在运行但集群实际上卡住的状态。 我知道,如果我的工作没有卡住,它将在 5 小时或更短的时间内完成。 如果之后它仍在运行,则表明作业已卡住。 Yarn 和 Spark UI 仍然是响应式的,只是执行器卡在任务上。

背景:我正在使用一个临时的 EMR 集群,它在终止前只执行一个步骤,所以如果我注意到此作业挂起,将其终止不是问题。

在这种情况下,终止任务、作业或群集的最简单方法是什么? 理想情况下,这不涉及设置一些额外的服务来监控作业——理想情况下,我会使用某种火花/纱线/emr 设置。

注意:我尝试使用火花推测来解锁卡住的火花作业,但这无济于事。

EMR 具有引导操作功能,您可以在其中运行在初始化集群时启动的脚本。我将此功能与启动脚本一起使用,该脚本监视群集联机的时间并在一定时间后自行终止。

我使用基于此脚本的脚本进行引导操作。 https://github.com/thomhopmans/themarketingtechnologist/blob/master/6_deploy_spark_cluster_on_aws/files/terminate_idle_cluster.sh

基本上,制作一个脚本来检查/proc/uptime 以查看 EC2 机器已联机多长时间,并且在正常运行时间超过您的时间限制后,您可以向集群发送关闭命令。

相关内容

  • 没有找到相关文章

最新更新