我试过了
oozie job -oozie http://sandbox.hortonworks.com:11000/oozie -config ./job.properties -kill *
......没有效果。我已经完成了一些Google搜索并检查了Oozie的文档,但似乎没有这方面的命令。
有人知道如何实现这个目标吗?
答案 0 :(得分:8)
似乎oozie的最新版本(在4.2上测试)使这变得更容易。
这是一个oneliner,我现在用来杀死我创建的所有工作。
oozie jobs -oozie http://myserver:11000/oozie -kill -filter user=dennis -jobtype bundle & oozie jobs -oozie http://myserver:11000/oozie -kill -filter user=dennis -jobtype coordinator & oozie jobs -oozie http://myserver:11000/oozie -kill -filter user=dennis
首先它会杀死所有捆绑包,然后它会杀死所有协调员,最后杀死所有工作流程。请注意,我将过滤器设置为我自己的用户名,因为似乎必须设置过滤器。
更新: 正如@Nutle的评论中提到的那样:
值得注意的是(在4.3和win7 x64上)返回建议的命令 语法错误,通过将过滤条件括在引号中来解决,即
oozie jobs <...> -kill -filter "user=dennis"
答案 1 :(得分:2)
答案 2 :(得分:0)
也许你可以在python中使用以下类型的代码。它列出了oozie中所有正在运行的协调器作业,然后迭代地终止它们。如果您想要任何其他状态以及杀死作业,您可以修改。定义oozieURL参数(如http://localhost:11000/oozie)
import os , commands
def killAllRunningJobs(oozieURL):
runningJobs = commands.getoutput("oozie jobs -oozie " + oozieURL + " -jobtype coordinator | grep -i RUNNING | awk -F \" \" '{print $1} " )
print "Current Running Co-ordinator Jobs : " + runningJobs
for jobs in runningJobs:
os.system("oozie job -oozie " + oozieURL + " -kill " + jobs)
答案 3 :(得分:0)
oozie作业-oozie oozieURL -filter STATUS = RUNNING -kill