Apache Oozie-- 实战操作--调度 mapreduce 程序|学习笔记

简介: 快速学习 Apache Oozie-- 实战操作--调度 mapreduce 程序

开发者学堂课程【Oozie 知识精讲与实战演练Apache Oozie-- 实战操作--调度 mapreduce 程序】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/716/detail/12789


Apache Oozie-- 实战操作--调度 mapreduce 程序


内容介绍

一、Oozie 调度 MapReduce


一、Oozie 调度 MapReduce

1、准备配置模板

准备 mr 程序的架包和待处理数据。用 hadoop 自带的MR程序做 wordcount 统计。

准备数据上传到 HDFS 的 /oozie/input 路径下去

创建代处理的数据路径 hdfs dfs -mkdir -p /oozie/input

准备文件:hdfs dfs -put wordcount.txt /oozie/input,写一些简单的单词,保存好后把这个文件上传到刚才创建的文件夹下面,复制并执行,这样就完成了 mr 待处理的数据。

图片1.png

拷贝 MR 的任务模板到工作路径下

cd /export/servers/oozie-4.1.0-cdh5.14.0

cp -ra examples/apps/map-reduce/ oozie_works/ 把这个文件夹完整的 copy 到工作目录当中

图片2.png

具有相关的配置信息

删掉 MR 任务模板lib目录下自带的iar包,可以看到在当中有个lib 文件夹,cd到 lib 当中可以发现有一个 oozie 自带的 mr 程序,直接把他删除,删除后 mr 调度的程序需要自己去打包上传。

cd /export/servers/oozie-4.1.0-cdh5.14.0/oozie_works/map-

reduce/lib

rm -rf oozie-examples-4.1.0-cdh5.14.0.jar

以拷贝官方自带 mr 程序 jar 包到对应目录

cp

/export/servers/hadoop-2.7.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.5.jar,官方安装包下有 share 路径

/export/servers/oozie-4.1.0-cdh5.14.0/oozie_works/map reduce/lib/

将以上代码进行复制,做格式调整,复制后查看发现多了一个 hadoop-mapreduce-examp1es-2.7.5.jar,这个程序就是官方再带的,在企业当中如果需要去调度执行其他 mr 程序,必须首先保证 mr 程序逻辑没有问题,把它打成架包放在这个路径下就可以了。

2.修改配置模板

修改 job.properties,里面只需要去指导 hoodp 相关属性以及 workfold 工作路径。

进行远程修改相关的编辑,选择 workfold 文件夹做刷新,首先修改 job.properties

cd /export/servers/oozie-4.1.0-cdh5.14.0/oozie_works/map-

reduce

vim job.properties

修改为以下代码

nameNode=hdfs://node-1:9000

nameNode=hdfs://node-1:8020

jobTracker=node-1:8032

queueName=default

examplesRoot=oozie works

ooziewfapplicationpath=${nameNode}/user/${username}/${examplesRoot}/map reduce/workflow.xml

outputDir=/oozie/output(参数)

inputdir=/oozie/input

按照以上代码进行修改,这样就完成了 job.properties 的配置文件编写。

3.修改 workflow.xml

双击 workflow.xml 打开,核对以下代码操作

cd/export/servers/oozie-4.1.0-cdh5.14.0/oozie_works/map- reduce

vim workflow.xml

执行 mr 程序

${jobTracker}

${nameNode}

(预操作删除输出路径)

删除输出的路径,通过对 mr 的学习了解 mr 程序在执行的时候如果输出路径存在,直接报输出路径已经存在的异常,所以这里做了检测,不管数据有没有先把它给删除,来保证后面执行成功。

mapred.job.queue.name

${queueName}

需要强调,因为是老版的 api,所以需要把上面注释掉,输入新的 api 进行相关配置。

具体操作:

把 ${nameNode}/${outputDir}"/> 路径进行复制,就会检测输出路径,如果有的话就会把他删除

将以上-->到-->进行注释,这样相当于把老版本 api 注释掉

mapredmapper.new-api

true

mapred.reducer.new-api

true

mapreduce.job.output.value.class

org.apache.hadoop.io.IntWritable

mapred.input.dir 数据路径所在,

${nameNode}/${inputdir}

通过这个变量就可以获取到 inputdir 路径。

mapred.output.dir

${nameNode}/${outputDir}

(就是 mr 程序当中指定的全路径,一定要保持一致,和代码符合)mapreduce.job.map.class

org.apache.hadoop.examples.WordCountSTokenizerMapper

(数据比较多就多配置,少就不配置)mapreduce.job.reduce.class

org.apache.hadoop.examples.WordCountSIntSumReducer

mapred.map.tasks

将以上代码进行复制,就完成了整体的配置,格式做调整,这样就完成了 hdoop 的配置,放在 new 1- Notepad++ 来操作就不会出现格式问题,或者进行下载再上传,都比编辑器直接编辑错误率少很多。

Map/Reduce failed, error

message[${wf:errorMessage(wf:lastErrorNode())}]

4、上传调度任务到hdfs

cd /export/servers/oozie-4.1.0-cdh5.14.0/oozie_works

hdfs dfs -put map-reduce/ /user/root/oozie_works/

直接复制,上传后可以进行验证一下,这里面就有相关配置的参数

图片3.png

5、使用官方的执行调度任务

cd /export/servers/oozie-4.1.0-cdh5.14.0

bin/oozie job -oozie http://node-1:11000/oozie -config

oozie_works/map-reduce/job.properties -run

复制以上命令,进行修改格式,提交时已经报错,缺少参数,检查复制代码问题

图片4.png

提交完成后就可以看到执行的过程了,yarn 执行的结果如下图,会发现 mr 程序已经结束了

图片5.png 

图片6.png

通过 oozie 来查看,已经结束,也是成功的。

输出结果:若相同就代表正确。

图片7.png


二、总结

1.oozie 调度 mapreduce 程序需要在 workflow.xml 中开启使用新版的 api hadoop2.x

相关文章
|
6月前
|
Java API Apache
使用 Apache PDFBox 操作PDF文件
Apache PDFBox库是一个开源的Java工具,专门用于处理PDF文档。它允许用户创建全新的PDF文件,编辑现有的PDF文档,以及从PDF文件中提取内容。此外,Apache PDFBox还提供了一些命令行实用工具。
494 6
|
6月前
|
Linux 网络安全 Apache
Centos下操作Apache httpd
Centos下操作Apache httpd
125 0
|
SQL 分布式计算 并行计算
Hadoop学习笔记(三)之MapReduce
Hadoop学习笔记(三)之MapReduce
|
6月前
|
消息中间件 Java Kafka
实时计算 Flink版操作报错之Apache Flink中的SplitFetcher线程在读取数据时遇到了未预期的情况,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
3月前
|
分布式计算 监控 Hadoop
详解 Apache ZooKeeper 和 Apache Oozie
【8月更文挑战第31天】
106 0
|
6月前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之遇到报错:Apache Kafka Connect错误如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
211 5
|
SQL 关系型数据库 MySQL
怎么使用 Go 语言操作 Apache Doris
怎么使用 Go 语言操作 Apache Doris
907 0
|
6月前
|
SQL 消息中间件 Kafka
Apache Hudi测试、运维操作万字总结
Apache Hudi测试、运维操作万字总结
267 1
|
6月前
|
分布式计算 Java Hadoop
MapReduce编程:检索特定群体搜索记录和定义分片操作
MapReduce编程:检索特定群体搜索记录和定义分片操作
64 0
|
6月前
|
缓存 分布式计算 Java
MapReduce编程:join操作和聚合操作
MapReduce编程:join操作和聚合操作
106 0

推荐镜像

更多