oozie简介
任务工作流
截图预览
下面开始今天的内容分享。
在oozie中有几个重要的概念,他们分别是:
workflow:工作流,控制工作流的开始和结束过程,以及工作流job的执行路径,并提供一种机制来控制工作流执行路径(比如:decision、fork以及join节点等),其书写方式如下所示:
coordinator:多个workflow可以组成一个coordinator,可以把前几个workflow的输出作为后一个workflow的输入,当然也可以定义workflow的触发条件,来做定时触发,其书写方式如下所示:
bundle:控制一个或多个coordinator应用,其写法如下所示:
下面,我们在hadoop平台下去创建这样一个工作流,首先,我们需要配置hadoop的core-site.xml文件,在该文件中添加以下内容:
core-site.xml
然后,在去修改oozie的oozie-site.xml文件,在该文件中添加如下内容如下:
oozie-site.xml
在修改完相关文件后,下面我们去创建oozie的sharelib,其命令如下所示:
然后使用shareliblist命令查看相关内容,命令如下所示:
若成功创建,会生成如下图所示内容:
若未出现相应内容,请检查相关信息是否配置正确即可。
启动oozie服务
注:在启动时,这里建议打开oozie的启动日志,动态观察相关日志信息,也许会出现一些异常信息,比如:
这些异常信息大多是由于我们在前面打包生成war包时,由于缺少相关的依赖jar包导致的,这里我们将缺少的jar从hadoop的share目录下找到对应的jar拷贝到oozie运行war包容器下即可,如:
这里,异常都有相应的提示,大家耐心的按照提示解决异常即可,在解决相关异常后,我们就可以去创建相关工作流。
oozie给我们提供了相关示例让我去参考配置,下面我们将examples/apps下的文件上传到hdfs当中去,这里我上传在hdfs的
/oozie目录下。接下来,我给大家去演示一个定时任务。首先,我们进去到apps目录下的cron目录,这是一个定时任务的示例,其中包
含:coordinator.xml、job.properties和workflow.xml三个文件,这里我们对其进行配置。
coordinator.xml
这里配置的频率为10分钟,该属性可配置其它频率(如:小时,天等)。
job.properties
这里由于使用hadoop2.x的ha特性,在指定namenode时,直接使用hdfs://cluster1,在hadoop2.x后,jobtracker被替换了,这里将其地址指向resourcemanager.address的地址。
workflow.xml
工作流使用一个空的job。
在配置完相关文件后,我们将workflow.xml和coordinator.xml上传到指定的hdfs地址(之前上传examples目录下的corn目录下,上传之前先删除存在的文件),最后,我们启动这样一个工作流,命令如下所示:
创建成功后,会生成一个jobid,如下图所示:
注:图中我将命令封装在shell脚本当中。这里在创建工作流时,同样建议动态开启oozie的运行日志,便于查看异常信息。
若是需要kill任务,可以使用以下命令:
其job dag如下图所示:
在提交作业后,我们可以通过浏览oozie的web监控界面观察相关信息,如下图所示:
在将oozie集成到hadoop平台时,会有点繁琐,出现的异常都会在日志中有详细的记录,我们可以根据这些记录去解决出现的异常。另外,我
们在提交任务成功后,在oozie执行期间若是出现异常,我们也可以通过oozie的监控界面去非常方便的查看对应的异常信息,并排除。异常信息较多,需
要我们耐心的阅读相关记录信息。
这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!