我正在尝试使用rest api通过livy提交spark工作。但是如果我多次运行相同的脚本,它会运行具有不同作业ID的作业的多个实例。我正在寻找一种方法来杀死同名的火花/纱线作业,然后开始一个新的。 Livy文档说(https://github.com/cloudera/livy#batch)删除批处理作业,但是livy会话不返回应用程序名称,只返回应用程序ID。
还有其他办法吗?
答案 0 :(得分:1)
对于 Livy 0.7.0 版,以下有效。
您要停止的会话 ID 是 1
:
import requests
headers = {'Content-Type': 'application/json'}
session_url = 'http://your-livy-server-ip:8998/sessions/1'
requests.delete(session_url, headers=headers)
curl -X DELETE http://your-livy-server-ip:8998/sessions/1
见https://livy.incubator.apache.org/docs/latest/rest-api.html
答案 1 :(得分:0)
Livy服务器停止时处于活动状态的会话可能需要手动终止。使用集群管理器中的工具来实现该目标(例如,yarn命令行工具)。
运行以下命令以查找通过Livy启动的交互式作业的应用程序ID。
纱线申请表
运行以下命令以终止这些作业。
纱线申请-kill"申请ID"
答案 2 :(得分:0)
您可以使用LivyClient API使用Livy Server提交spark作业。 LivyClient API有一个停止方法,可用于杀死作业。
LivyClient.close(真);