首页 > 解决方案 > 杀死火花应用程序

问题描述

如果 spark 应用程序 id 运行时间超过特定时间,我想终止它,例如。一小时。有没有办法在特定用户 ID 中运行的 unix 脚本中实现。用户 ID - application_user

yarn application -kill application_ID

标签: apache-sparkunix

解决方案


我可以提出下一个解决方案:

  1. 您可以从 applicationId 解析应用程序启动的时间。(使用 curl 和 Spark rest API 创建一个命令来获取应用程序列表并获取正确的 applicationId:https://spark.apache.org/docs/latest/monitoring.html
    在这一步之后,您将在格式 YYYYMMDDHHMMSS(例如 20181112020100)

  2. 现在您需要使用以下命令获取当前时间:date +%Y%m%d%H%M%S

  3. 在一个循环中,获取当前时间并将其与您从第一步获得的时间(即应用程序启动时间)进行比较,并将其与当前时间进行比较。当应用程序启动时间和当前时间之间的差异例如两个小时时,您将退出一个循环并使用 kill 命令:yarn application -kill application_ID

这是建议步骤的实现之一:https ://community.hortonworks.com/articles/86037/script-to-kill-yarn-application-if-it-is-running-m.html

希望,这将是有用的。


推荐阅读