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

相关文章
|
4月前
|
分布式计算 大数据 Hadoop
揭秘MapReduce背后的魔法:从基础类型到高级格式,带你深入理解这一大数据处理利器的奥秘与实战技巧,让你从此不再是编程门外汉!
【8月更文挑战第17天】MapReduce作为分布式计算模型,是大数据处理的基石。它通过Map和Reduce函数处理大规模数据集,简化编程模型,使开发者聚焦业务逻辑。MapReduce分单阶段和多阶段,支持多种输入输出格式如`TextInputFormat`和`SequenceFileInputFormat`。例如,简单的单词计数程序利用`TextInputFormat`读取文本行并计数;而`SequenceFileInputFormat`适用于高效处理二进制序列文件。合理选择类型和格式可有效解决大数据问题。
78 1
|
4月前
|
分布式计算 大数据 分布式数据库
"揭秘HBase MapReduce高效数据处理秘诀:四步实战攻略,让你轻松玩转大数据分析!"
【8月更文挑战第17天】大数据时代,HBase以高性能、可扩展性成为关键的数据存储解决方案。结合MapReduce分布式计算框架,能高效处理HBase中的大规模数据。本文通过实例展示如何配置HBase集群、编写Map和Reduce函数,以及运行MapReduce作业来计算HBase某列的平均值。此过程不仅限于简单的统计分析,还可扩展至更复杂的数据处理任务,为企业提供强有力的大数据技术支持。
82 1
|
4月前
|
SQL 分布式计算 数据处理
|
4月前
|
分布式计算 资源调度 监控
MapReduce程序中的主要配置参数详解
【8月更文挑战第31天】
169 0
|
6月前
|
分布式计算 Java Hadoop
简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行
简单的java Hadoop MapReduce程序(计算平均成绩)从打包到提交及运行
63 0
|
6月前
|
分布式计算 数据挖掘
通过mapreduce程序统计旅游订单(wordcount升级版)
通过mapreduce程序统计旅游订单(wordcount升级版)
|
7月前
|
分布式计算 数据可视化 Hadoop
大数据实战——基于Hadoop的Mapreduce编程实践案例的设计与实现
大数据实战——基于Hadoop的Mapreduce编程实践案例的设计与实现
|
7月前
|
存储 分布式计算 关系型数据库
bigdata-08-MapReduce原理到实战
bigdata-08-MapReduce原理到实战
88 0
|
7月前
|
存储 分布式计算 搜索推荐
【大数据技术Hadoop+Spark】MapReduce之单词计数和倒排索引实战(附源码和数据集 超详细)
【大数据技术Hadoop+Spark】MapReduce之单词计数和倒排索引实战(附源码和数据集 超详细)
237 0
|
11天前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
289 33
The Past, Present and Future of Apache Flink

热门文章

最新文章

相关实验场景

更多

推荐镜像

更多