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