前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >「EMR 开发指南」之 Oozie 作业调度

「EMR 开发指南」之 Oozie 作业调度

原创
作者头像
岳涛
发布2023-11-30 18:28:39
1330
发布2023-11-30 18:28:39
举报
文章被收录于专栏:大数据生态大数据生态

说明

本文描述问题及解决方法同样适用于 弹性 MapReduce(EMR)

背景

本文将使用oozie组件自带的例子,详细介绍如何在oozie workflow上提交一个MapReduce jar。 本文以oozie 4.3.1版本为例。

准备

运行oozie需要先安装oozie的sharelib:https://oozie.apache.org/docs/4.3.1/WorkflowFunctionalSpec.html#ShareLib。在EMR中,已经默认给hadoop用户安装了sharelib,即如果使用hadoop用户来提交workflow作业,则不需要再进行sharelib的安装。

登录到集群master节点,进入oozie目录,并切换用户身份为hadoop:

代码语言:javascript
复制
cd /usr/local/service/oozie
su hadoop

解压oozie自带的示例包:

代码语言:javascript
复制
tar -xvf oozie-examples.tar.gz

提交作业

进入/usr/local/service/oozie/examples/apps/map-reduce目录,编辑job.properties文件:

代码语言:javascript
复制
nameNode=hdfs://master节点IP:4007
jobTracker=master节点IP:5000
queueName=default
examplesRoot=examplesoozie

oozie.wf.application.path=${nameNode}/user/${user.name}/${examplesRoot}/map-reduce/workflow.xml
outputDir=map-reduce

job.properties 文件中需要指定不同的 NameNode 和 JobTracker(ResourceManager),上面示例中是EMR的默认端口,如不清楚集群的端口,可在hadoop配置文件中的fs.defaultFS(位于core-site.xml)和yarn.resourcemanager.address(位于yarn-site.xml)中查看。

在HDFS上新建目录(确保是hadoop用户):

代码语言:javascript
复制
hadoop fs -mkdir -p /user/hadoop/examplesoozie/map-reduce
hadoop fs -mkdir -p /user/hadoop/examplesoozie/input-data
hadoop fs -mkdir -p /user/hadoop/examplesoozie/map-reduce/lib

在新建的目录中,上传示例中的workflow文件:

代码语言:javascript
复制
hadoop fs -copyFromLocal /usr/local/service/oozie/examples/apps/map-reduce/workflow.xml /user/hadoop/examplesoozie/map-reduce/workflow.xml

如要了解workflow文件的详细格式,请参考oozie 官方文档:https://oozie.apache.org/docs/4.3.1

上传输入数据:

代码语言:javascript
复制
hadoop fs -copyFromLocal /usr/local/service/oozie/examples/input-data/ /user/hadoop/examplesoozie/

上传jar包:

代码语言:javascript
复制
hadoop fs -copyFromLocal /usr/local/service/oozie/examples/apps/map-reduce/lib/oozie-examples-4.3.0.jar  /user/hadoop/examplesoozie/map-reduce/lib/oozie-examples-4.3.0.jar

提交并运行作业(注意:job.properties应该是本地文件而非HDFS文件):

代码语言:javascript
复制
/usr/local/service/oozie/bin/oozie job -oozie http://localhost:12000/oozie -config /usr/local/service/oozie/examples/apps/map-reduce/job.properties -run

执行成功之后,会返回一个jobId,类似:

代码语言:javascript
复制
job: 0000001-190226180429763-oozie-hado-W

查看运行情况

命令行查看

根据jobId查看任务情况:
代码语言:javascript
复制
/usr/local/service/oozie/bin/oozie job -oozie http://localhost:12000/oozie -info 0000000-190226180429763-oozie-hado-W

输出结果:

代码语言:javascript
复制
Job ID : 0000001-190226180429763-oozie-hado-W
------------------------------------------------------------------------------------------------------------------------------------
Workflow Name : map-reduce-wf
App Path      : hdfs://172.21.0.18:4007/user/hadoop/examplesoozie/map-reduce/workflow.xml
Status        : SUCCEEDED
Run           : 0
User          : hadoop
Group         : -
Created       : 2019-02-28 06:35 GMT
Started       : 2019-02-28 06:35 GMT
Last Modified : 2019-02-28 06:35 GMT
Ended         : 2019-02-28 06:35 GMT
CoordAction ID: -

Actions
------------------------------------------------------------------------------------------------------------------------------------
ID                                                                            Status    Ext ID                 Ext Status Err Code  
------------------------------------------------------------------------------------------------------------------------------------
0000001-190226180429763-oozie-hado-W@:start:                                  OK        -                      OK         -         
------------------------------------------------------------------------------------------------------------------------------------
0000001-190226180429763-oozie-hado-W@mr-node                                  OK        job_1551174942929_0003 SUCCEEDED  -         
------------------------------------------------------------------------------------------------------------------------------------
0000001-190226180429763-oozie-hado-W@end                                      OK        -                      OK         -         
------------------------------------------------------------------------------------------------------------------------------------

WebUI查看

可在浏览器中访问oozie WebUI: http://master节点外网IP:30001/emr-oozie 也可通过腾讯云EMR控制台->组件管理->原生WebUI访问地址链接直接进入。 如图:

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 说明
  • 背景
  • 准备
  • 提交作业
  • 查看运行情况
    • 命令行查看
      • WebUI查看
      相关产品与服务
      大数据
      全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档