【云小课】EI第41课 MRS基础原理之Oozie任务调度

Hello EI 发表于 2022/05/24 10:38:16 2022/05/24
【摘要】 Oozie是一个基于工作流引擎的开源框架,它能够提供对Hadoop作业的任务调度与协调。Oozie是一个工作流引擎服务器,用于运行MapReduce任务工作流。同时Oozie还是一个Java Web程序,运行在Tomcat容器中。Oozie工作流通过HPDL(一种通过XML自定义处理的语言,类似JBOSS JBPM的JPDL)来构造。包含“Control Node”(可控制的工作流节点)、“...

Oozie是一个基于工作流引擎的开源框架,它能够提供对Hadoop作业的任务调度与协调。

Oozie是一个工作流引擎服务器,用于运行MapReduce任务工作流。同时Oozie还是一个Java Web程序,运行在Tomcat容器中。

image008.jpg

Oozie工作流通过HPDL(一种通过XML自定义处理的语言,类似JBOSS JBPMJPDL)来构造。包含“Control Node”(可控制的工作流节点)、“Action Node”。

  • Control Node”用于控制工作流的编排,如“start”(开始)、“end”(关闭)、“error”(异常场景)、“decision”(选择)、“fork”(并行)、“join”(合并)等。
  • Oozie工作流中拥有多个“Action Node”,如MapReuceJava等。所有的“Action Node”以有向无环图DAGDirect Acyclic Graph)的模式部署运行。所以在“Action Node”的运行步骤上是有方向的,当上一个“Action Node”运行完成后才能运行下一个“Action Node”。一旦当前“Action Node”完成,远程服务器将回调Oozie的接口,这时Oozie又会以同样的方式执行工作流中的下一个“Action Node”,直到工作流中所有“Action Node”都完成(完成包括失败)。


名称 描述
Console 提供对Oozie流程的查看和监控功能。
Client 通过接口控制workflow流程:可以执行提交流程,启动流程,运行流程,终止流程,恢复流程等操作。
SDK 软件开发工具包SDK(SoftwareDevelopmentKit)是被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。
Database pg数据库。
WebAPP WebApp(Oozie)即Oozie server,可以用内置的Tomcat容器,也可以用外部的,记录的信息比如日志等放在pg数据库中。
Tomcat Tomcat服务器是免费的开放源代码的Web应用服务器。
Hadoop 底层执行Oozie编排流程的各个组件,包括MapReduce、Hive等。

Oozie工作流提供各种类型的“Action Node”用于支持不同的业务需要,如MapReduceHDFSSSHJava以及Oozie子流程。

如何使用Oozie

购买包含有Oozie组件的MRS集群后,用户即可使用Oozie进行作业提交及调度。

MRS集群的创建可参考创建集群,例如购买一个MRS 3.1.0普通模式(关闭Kerberos认证)集群。

Oozie客户端的安装可以参考安装客户端,例如客户端安装目录为:“/opt/client”。

  1. 以客户端安装用户,登录安装客户端的节点。
  2. 执行以下命令,切换到客户端安装目录。
    cd /opt/client
    source bigdata_env
  3. 上传Oozie配置文件以及Jar包至HDFS(UserOozie为提交任务的用户名)。
    hdfs dfs -mkdir /user/UserOozie
    hdfs dfs -put -f /opt/client/Oozie/oozie-client-*/examples /user/UserOozie/
  4. 修改任务执行配置文件。
    cd /opt/client/Oozie/oozie-client-*/examples/apps/map-reduce/
    vi job.properties
    nameNode=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

  5. 运行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
    
  6. 登录集群的FusionInsight Manager界面,选择“集群 > 服务 > Oozie ”。
  7. 单击“oozie WebUI”后的超链接进入Oozie页面,在Oozie的WebUI上查看任务运行结果。

    image011.png

关于Ooize应用开发及相关样例代码介绍,请参考《Oozie开发指南》

好了,本期云小课就介绍到这里,快去体验MapReduce(MRS)更多功能吧!猛戳这里


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:cloudbbs@huaweicloud.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。