【发布时间】:2018-11-13 16:55:21
【问题描述】:
如果 spark 应用程序 id 运行时间超过特定时间,我想终止它,例如。一小时。有没有一种方法可以在特定用户 ID 下运行的 unix 脚本中实现。用户 ID - application_user
yarn application -kill application_ID
【问题讨论】:
标签: apache-spark unix
如果 spark 应用程序 id 运行时间超过特定时间,我想终止它,例如。一小时。有没有一种方法可以在特定用户 ID 下运行的 unix 脚本中实现。用户 ID - application_user
yarn application -kill application_ID
【问题讨论】:
标签: apache-spark unix
我可以提出下一个解决方案:
可以从applicationId解析应用启动的时间。
(使用 curl 和 Spark rest API 创建命令来获取应用程序列表并获取正确的 applicationId:https://spark.apache.org/docs/latest/monitoring.html)
完成此步骤后,您将获得格式为 YYYYMMDDHHMMSS 的日期(例如 20181112020100)
现在你需要使用命令获取当前时间:date +%Y%m%d%H%M%S
在一个循环中,获取当前时间并将其与您从第一步获得的时间(即应用程序启动时间)进行比较,并将其与当前时间进行比较。当应用程序启动时间与当前时间相差例如两个小时时,您将退出一个循环并使用 kill 命令:yarn application -kill application_ID
这里是建议步骤的实现之一:https://community.hortonworks.com/articles/86037/script-to-kill-yarn-application-if-it-is-running-m.html
希望,这会很有用。
【讨论】: