有没有办法指导Oozie杀死所有工作?

时间:2014-10-14 01:03:01

标签: oozie

我试过了

oozie job -oozie http://sandbox.hortonworks.com:11000/oozie -config ./job.properties -kill *

......没有效果。我已经完成了一些Google搜索并检查了Oozie的文档,但似乎没有这方面的命令。

有人知道如何实现这个目标吗?

4 个答案:

答案 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)

据我所知,没有这样的命令。

尝试一个lists作业的shell脚本(遗憾的是,工作流作业,协调器和包应该单独列出),然后grep标题和花式格式化,cut s工作ID和kills一个接一个。

答案 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