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

相关文章
|
7月前
|
Java API Apache
使用 Apache PDFBox 操作PDF文件
Apache PDFBox库是一个开源的Java工具,专门用于处理PDF文档。它允许用户创建全新的PDF文件,编辑现有的PDF文档,以及从PDF文件中提取内容。此外,Apache PDFBox还提供了一些命令行实用工具。
617 6
|
7月前
|
消息中间件 Java Kafka
实时计算 Flink版操作报错之Apache Flink中的SplitFetcher线程在读取数据时遇到了未预期的情况,该怎么解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
|
4月前
|
分布式计算 大数据 Hadoop
揭秘MapReduce背后的魔法:从基础类型到高级格式,带你深入理解这一大数据处理利器的奥秘与实战技巧,让你从此不再是编程门外汉!
【8月更文挑战第17天】MapReduce作为分布式计算模型,是大数据处理的基石。它通过Map和Reduce函数处理大规模数据集,简化编程模型,使开发者聚焦业务逻辑。MapReduce分单阶段和多阶段,支持多种输入输出格式如`TextInputFormat`和`SequenceFileInputFormat`。例如,简单的单词计数程序利用`TextInputFormat`读取文本行并计数;而`SequenceFileInputFormat`适用于高效处理二进制序列文件。合理选择类型和格式可有效解决大数据问题。
68 1
|
4月前
|
分布式计算 大数据 分布式数据库
"揭秘HBase MapReduce高效数据处理秘诀:四步实战攻略,让你轻松玩转大数据分析!"
【8月更文挑战第17天】大数据时代,HBase以高性能、可扩展性成为关键的数据存储解决方案。结合MapReduce分布式计算框架,能高效处理HBase中的大规模数据。本文通过实例展示如何配置HBase集群、编写Map和Reduce函数,以及运行MapReduce作业来计算HBase某列的平均值。此过程不仅限于简单的统计分析,还可扩展至更复杂的数据处理任务,为企业提供强有力的大数据技术支持。
71 1
|
7月前
|
消息中间件 关系型数据库 MySQL
实时计算 Flink版操作报错合集之遇到报错:Apache Kafka Connect错误如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。
220 5
|
7月前
|
分布式计算 数据可视化 Hadoop
大数据实战——基于Hadoop的Mapreduce编程实践案例的设计与实现
大数据实战——基于Hadoop的Mapreduce编程实践案例的设计与实现
|
7月前
|
SQL 消息中间件 Kafka
Apache Hudi测试、运维操作万字总结
Apache Hudi测试、运维操作万字总结
291 1
|
7月前
|
存储 分布式计算 关系型数据库
bigdata-08-MapReduce原理到实战
bigdata-08-MapReduce原理到实战
84 0
|
7月前
|
分布式计算 Hadoop 大数据
【云计算与大数据计算】Hadoop MapReduce实战之统计每个单词出现次数、单词平均长度、Grep(附源码 )
【云计算与大数据计算】Hadoop MapReduce实战之统计每个单词出现次数、单词平均长度、Grep(附源码 )
303 1
|
7月前
|
分布式计算 Java Hadoop
MapReduce编程:检索特定群体搜索记录和定义分片操作
MapReduce编程:检索特定群体搜索记录和定义分片操作
70 0

推荐镜像

更多