天天看点

高可用Hadoop平台-Oozie工作流之Hadoop调度1.概述2.Oozie简介3.任务工作流4.截图预览5.总结6.结束语

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命令查看相关内容,命令如下所示:

  若成功创建,会生成如下图所示内容:

高可用Hadoop平台-Oozie工作流之Hadoop调度1.概述2.Oozie简介3.任务工作流4.截图预览5.总结6.结束语

  若未出现相应内容,请检查相关信息是否配置正确即可。

启动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,如下图所示:

高可用Hadoop平台-Oozie工作流之Hadoop调度1.概述2.Oozie简介3.任务工作流4.截图预览5.总结6.结束语

  注:图中我将命令封装在shell脚本当中。这里在创建工作流时,同样建议动态开启oozie的运行日志,便于查看异常信息。

  若是需要kill任务,可以使用以下命令:

  其job dag如下图所示:

高可用Hadoop平台-Oozie工作流之Hadoop调度1.概述2.Oozie简介3.任务工作流4.截图预览5.总结6.结束语

  在提交作业后,我们可以通过浏览oozie的web监控界面观察相关信息,如下图所示:

高可用Hadoop平台-Oozie工作流之Hadoop调度1.概述2.Oozie简介3.任务工作流4.截图预览5.总结6.结束语
高可用Hadoop平台-Oozie工作流之Hadoop调度1.概述2.Oozie简介3.任务工作流4.截图预览5.总结6.结束语
高可用Hadoop平台-Oozie工作流之Hadoop调度1.概述2.Oozie简介3.任务工作流4.截图预览5.总结6.结束语

  在将oozie集成到hadoop平台时,会有点繁琐,出现的异常都会在日志中有详细的记录,我们可以根据这些记录去解决出现的异常。另外,我

们在提交任务成功后,在oozie执行期间若是出现异常,我们也可以通过oozie的监控界面去非常方便的查看对应的异常信息,并排除。异常信息较多,需

要我们耐心的阅读相关记录信息。

  这篇博客就和大家分享到这里,如果大家在研究学习的过程当中有什么问题,可以加群进行讨论或发送邮件给我,我会尽我所能为您解答,与君共勉!