云小课|MRS 基础原理之 Oozie 任务调度

本文分享自华为云社区《【云小课】EI第41课 MRS基础原理之Oozie任务调度》,作者: Hello EI。

Oozie 是一个基于工作流引擎的开源框架,它能够提供对 Hadoop 作业的任务调度与协调。
Oozie 是一个工作流引擎服务器,用于运行 MapReduce 任务工作流。同时 Oozie 还是一个 Java Web 程序,运行在 Tomcat 容器中。

Oozie 工作流通过 HPDL(一种通过 XML 自定义处理的语言,类似 JBOSS JBPM 的 JPDL)来构造。包含“Control Node”(可控制的工作流节点)、“Action Node”。
“Control Node”用于控制工作流的编排,如“start”(开始)、“end”(关闭)、“error”(异常场景)、“decision”(选择)、“fork”(并行)、“join”(合并)等。
Oozie 工作流中拥有多个“Action Node”,如 MapReuce、Java 等。所有的“Action Node”以有向无环图 DAG(Direct Acyclic Graph)的模式部署运行。所以在“Action Node”的运行步骤上是有方向的,当上一个“Action Node”运行完成后才能运行下一个“Action Node”。一旦当前“Action Node”完成,远程服务器将回调 Oozie 的接口,这时 Oozie 又会以同样的方式执行工作流中的下一个“Action Node”,直到工作流中所有“Action Node”都完成(完成包括失败)。


Oozie 工作流提供各种类型的“Action Node”用于支持不同的业务需要,如 MapReduce,HDFS,SSH,Java 以及 Oozie 子流程。
如何使用 Oozie
购买包含有 Oozie 组件的 MRS 集群后,用户即可使用 Oozie 进行作业提交及调度。
MRS 集群的创建可参考创建集群,例如购买一个 MRS 3.1.0 普通模式(关闭 Kerberos 认证)集群。
Oozie 客户端的安装可以参考安装客户端,例如客户端安装目录为:“/opt/client”。
以客户端安装用户,登录安装客户端的节点。
执行以下命令,切换到客户端安装目录。cd /opt/client source bigdata_env
上传 Oozie 配置文件以及 Jar 包至 HDFS(UserOozie 为提交任务的用户名)。hdfs dfs -mkdir /user/UserOozie hdfs dfs -put -f /opt/client/Oozie/oozie-client-*/examples /user/UserOozie/
修改任务执行配置文件。cd /opt/client/Oozie/oozie-client-*/examples/apps/map-reduce/ vi job.propertiesnameNode=hdfs://hacluster resourceManager=Yarn ResourceManager 主节点 IP 地址:端口 ##端口可通过“yarn.resourcemanager.port”参数查询,例如 8032。 queueName=default examplesRoot=examples user.name=admin oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/apps/map-reduce #HDFS 上传路径 outputDir=map-reduce oozie.wf.rerun.failnodes=true
运行 Oozie 任务。oozie job -oozie https://oozie 角色的主机名:21003/oozie/ -config job.properties -run[root@kwephispra44947 map-reduce]# oozie job -oozie https://host44948:21003/oozie/ -config job.properties -run ...... job: 0000000-200730163829770-oozie-omm-W
登录集群的 FusionInsight Manager 界面,选择“集群 > 服务 > Oozie ”。
单击“oozie WebUI”后的超链接进入 Oozie 页面,在 Oozie 的 WebUI 上查看任务运行结果。

关于 Ooize 应用开发及相关样例代码介绍,请参考《Oozie开发指南》。
好了,本期云小课就介绍到这里,快去体验 MapReduce(MRS)更多功能吧!猛戳这里
版权声明: 本文为 InfoQ 作者【华为云开发者联盟】的原创文章。
原文链接:【http://xie.infoq.cn/article/e246d85fd573baef763e90ca5】。文章转载请联系作者。
评论