本文描述问题及解决方法同样适用于 弹性 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:
解压oozie自带的示例包:
进入/usr/local/service/oozie/examples/apps/map-reduce目录,编辑job.properties文件:
job.properties 文件中需要指定不同的 NameNode 和 JobTracker(ResourceManager),上面示例中是EMR的默认端口,如不清楚集群的端口,可在hadoop配置文件中的fs.defaultFS(位于core-site.xml)和yarn.resourcemanager.address(位于yarn-site.xml)中查看。
在HDFS上新建目录(确保是hadoop用户):
在新建的目录中,上传示例中的workflow文件:
如要了解workflow文件的详细格式,请参考oozie 官方文档:https://oozie.apache.org/docs/4.3.1
上传输入数据:
上传jar包:
提交并运行作业(注意:job.properties应该是本地文件而非HDFS文件):
执行成功之后,会返回一个jobId,类似:
输出结果:
可在浏览器中访问oozie WebUI: http://master节点外网IP:30001/emr-oozie 也可通过腾讯云EMR控制台->组件管理->原生WebUI访问地址链接直接进入。 如图:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。