apache-spark - 杀死火花应用程序
问题描述
如果 spark 应用程序 id 运行时间超过特定时间,我想终止它,例如。一小时。有没有办法在特定用户 ID 中运行的 unix 脚本中实现。用户 ID - application_user
yarn application -kill application_ID
解决方案
我可以提出下一个解决方案:
您可以从 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
希望,这将是有用的。
推荐阅读
- sql - 如何验证这些列?
- sql - 如何在 shell 脚本中验证更新或选择查询?
- python - 如何访问子查询中的特殊字段?
- python - Pushover 脚本没有得到所需的结果
- wordpress - Wordpress 编辑器字体
- javascript - Vue.js 显示流程图
- sql-server - 通过 filebeats 或 nxlog 等日志收集器读取 XEL(SQL Server 扩展事件文件)
- c++ - 转发到聚合初始化器?
- apache - Apache Tomcat 请求的资源上不存在“Access-Control-Allow-Origin”标头
- intellij-idea - 我正在尝试 start_intellij 但它立即因错误而卡住: