2016-06-30 54 views
0

我们如何获得每天运行的Oozie工作的状态?我们在Oozie协调员中运行了许多工作,目前我们正在通过Hue/Oozie浏览器进行监控。oozie工作的报告

有什么办法可以让我们得到一个单一的日志文件,其中包含协调员名称/工作流程名称与日期和状态?我们可以编写任何程序或脚本来实现这一目标吗?

+0

所有的答案都集中在Oozie命令行;但如果您对**程序化**方式感兴趣,请查看其他帖子:http://stackoverflow.com/questions/38503520/exporting-jobs-listed-in-oozie-web-console/ –

回答

1

您可以使用下面的命令并将其放入脚本中以运行daily/cron。

oozie jobs -oozie http://localhost:11000/oozie -filter status=RUNNING -len 2 
oozie jobs -oozie http://localhost:11000/oozie -filter startCreatedTime=2016-06-28T00:00Z\;endcreatedtime=2016-06-28T10:00Z -len 2 

基本上你是使用了Oozie的jobs API和-filter命令来获取有关工作流/协调员/包的信息。 -filter命令支持几种选项以基于status/startCreatedTime/name获取数据。

默认情况下,如果要获取协调器/主轴信息,它将带来工作流程记录信息。您可以使用-jobtype参数和值作为coord/bundle

让我知道你是否需要任何特别的东西。 oozie文档对于此功能已经过时了。

+0

这只返回处于运行状态的作业。我想了解昨天晚上所有工作的细节,以了解他们是成功还是失败。 – Naveen

+0

我已经用'startCreatedTime'参数添加了这个例子。您还可以添加类似的'endCreatedTime'来限制时间间隔。 – YoungHobbit

+0

是的。这也会起作用。谢谢。 – Naveen

1

命令来获取所有正在运行的Oozie的协调员

oozie jobs -jobtype coordinator -filter status=RUNNING -len 1000 -oozie http://localhost:11000/oozie 

司令部的地位,获取所有正在运行Oozie的工作流

oozie jobs -filter status=RUNNING -len 1000 -oozie http://localhost:11000/oozie 

命令的状态让所有工作流程的状态为特定的协调ID

oozie job -info COORDINATOR_ID_HERE 

基于这些查询,您可以编写必需的脚本t o得到你想要的。

条款解释:

  • oozie:命令启动Oozie的
  • job/jobs:API
  • len:Oozie的工作流程/协调员号显示
  • -oozie:帕拉姆指定Oozie的网址
  • -filter:Param指定过滤器列表。

完整的文档https://oozie.apache.org/docs/3.1.3-incubating/DG_CommandLineTool.html

0

以下命令为我工作。

oozie jobs -oozie http://xx.xxx.xx.xx:11000/oozie -jobtype wf -len 300 | grep 2016-07-01 > OozieJobsStatus_20160701.txt 

但是我们需要解析这个文件。

+0

是的。这个命令可以工作并完成这项工作,但这并不是最优的。您可以使用oozie提供的不同过滤器参数。 – YoungHobbit