停止Oozie工作流程执行

时间:2012-08-23 17:00:27

标签: workflow oozie

昨天我开始了一个oozie工作流程。它开始了一整天停滞不前的工作。我今天早上杀了他们,做了一个我现在要测试的改变。在杀死这两个工作之后,就像工作流程变得不紧密,现在正在进行中。我想杀死工作流程,因此它不会继续开始新的工作来取代我杀死的工作。我怎么能在oozie命令行中这样做?

4 个答案:

答案 0 :(得分:25)

Oozie命令
--------------
注意:将oozie服务器和端口替换为特定于群集的
1)提交工作:
$ oozie job -oozie http://localhost:11000/oozie -config oozieProject/workflowHdfsAndEmailActions/job.properties -submit job: 0000001-130712212133144-oozie-oozi-W

2)运行工作:
$ oozie job -oozie http://localhost:11000/oozie -start 0000001-130712212133144-oozie-oozi-W

3)检查状态:
$ oozie job -oozie http://localhost:11000/oozie -info 0000001-130712212133144-oozie-oozi-W

4)暂停工作流程
$ oozie job -oozie http://localhost:11000/oozie -suspend 0000001-130712212133144-oozie-oozi-W

5)恢复工作流程
$ oozie job -oozie http://localhost:11000/oozie -resume 0000001-130712212133144-oozie-oozi-W

6)重新运行工作流程:
$ oozie job -oozie http://localhost:11000/oozie -config oozieProject/workflowHdfsAndEmailActions/job.properties -rerun 0000001-130712212133144-oozie-oozi-W

7)你是否需要杀死这份工作:
$ oozie job -oozie http://localhost:11000/oozie -kill 0000001-130712212133144-oozie-oozi-W

8)查看服务器日志:
$ oozie job -oozie http://localhost:11000/oozie -logs 0000001-130712212133144-oozie-oozi-W

日志位于:
/var/log/oozie on the Oozie server

答案 1 :(得分:13)

您可以使用以下方式查看正在运行的作业:

oozie jobs

或者如果它是协调员,而不是工作流程:

oozie jobs -jobtype coordinator

从那里获取工作ID,然后执行:

oozie job -kill [id]

这是命令行工具参考页面:http://incubator.apache.org/oozie/docs/3.1.3/docs/DG_CommandLineTool.html

答案 2 :(得分:0)

除了与Oozie命令相关的帖子外,有时我们不必访问各自的工作流ID即可挂起/杀死等,并且我们得到以下错误:

Error: E0508 : E0508: User [?] not authorized for WF job [0001304-190209190348229-oozie-mapr-W]

为此,要执行诸如kill / suspend等的任何操作,我们需要为我们的用户ID生成身份验证令牌。为此,首先,我们需要使用以下命令从文件中清除现有令牌,然后对给定的工作流ID执行暂停/杀死等操作:

rm .oozie-auth-token

从Apache Oozie文档中:

  

成功执行身份验证后,接收到   身份验证令牌缓存在用户的主目录中   具有所有者专有权限的.oozie-auth-token文件。后续的   请求在有效时重复使用缓存的令牌。

有关更多详细信息,请参阅Apache Oozie文档的链接(请参阅“身份验证”部分): Official Documentation

答案 3 :(得分:0)

我认为您会发现如何使用bash同时杀死,重新运行多个(例如200个)作业很有帮助。

一行中

$for jobid in `oozie jobs -filter status=SUSPENDED | cut -d" " -f1`; do echo "Killed job ${jobid}"; job -kill ${jobid}; done