开发者学堂课程【Oozie 知识精讲与实战演练:Apache Oozie-- 实战操作--集成 hue& 调度 mapreduce 程序】学习笔记,与课程紧密联系,让用户快速学习知识。 课程地址:https://developer.aliyun.com/learning/course/716/detail/12794
Apache Oozie--实战操作--集成hue&调度mapreduce程序
内容简介:
一、利用 oozie 做整合
二、直接提交 MapReduce 程序
一、利用 oozie 做整合
利用 hue 和 Oozie 来调度 MapReduce 程序,因为需要配置很多的参数,例如:输入输出的路径, class 的类型等等,所以调度 MapReduce 程序会有些复杂。
1、具体操作
(1)打开浏览器,点击 Query 下方的 Scheduler ,选择 Workflow,创建新的工作流,起名为 hue mapreduce 并将描述修改为 itcast。
(2)
(3)选择执行节点信息,选择 MapReduce job 并拖住它放到 drop your action here 中,这时需要添加 MapReduce 程序的架包,该架包路径必须位于 HDFS 之上,可以把自己本地开发好的 MapReduce 程序提交到这里,在路径中有一个 MapReduce 程序,是官方制定,选择 hadoop-mapreduce-examples-2.7.5.jar,它的提交需要很多参数,所以需要开启新版本的 API来指定输入输出的类,输入输出的路径,这需要利用 PROPERTIES 来编辑。
(4)点击 PROPERTIES 添加选项,这些选项位于参考交流中,打开配置软件在 Apache Hue 中有
mapreduce_oozie_workflow.xml,这里记录了手动通过 oozie 提交 MapReduce 需要配置的参数,这些参数需要原封不动的复制。
参数如下(具体根据代码情况修改):
(1)是否启用新的 API 来进行配置
复制 mapred.mapper.new-api,注意细心,value 值为 true
(2)是否启用 reduce 新的 API
复制 mapred.reduce.new-api,value 值为 true
(3)指定MR的输出 key 的类型
输出 key 的类型跟业务相关,复制
mapreduce.job.output.key.class, 因为做关于单词的统计,输出的都是单词的类型,所以有关于 Text 的类型,所以后面 value 的值是 org.apache.hadoop.io.Text
(4)指定 MR 的输出的 value 的类型
复制 mapreduce.job.output.value.class, 输出的是单词次数用 IintWritable 来表示 ,
所以 value 的值是 org.apache.hadoop.io.IintWritable
(5)指定输入路径
复制 mapred.input.dir 粘贴,输入路径可以自己敲,指定输入路径为 /oozie/input/,所以 value 的值为 /oozie/input/
(6)指定输出路径
复制 mapred.output.dir 粘贴,输出路径同样重新指定,将它放到 oozie 下的output666, 所以 value 的值为 /oozie/output666
(7)指定执行的 map 类
复制官方制定的类 mapreduce.job.map.class 粘贴,value 的值为org.apache.hadoop.examples.Wordcount$TokenizerMapper, 这里具体根据所需的类改变
(8)指定执行的 reduce 类
复制 mapreduce.job.reduce.class 粘贴, value 的值为 org.apache.hadoop.examples.Wordcount$IntSumReduce
(9)配置 map task 的个数
可以开启,也可以不开启
最终结果如下图所示:
配置好后进行验证,校正好后点击按钮 save 进行保存,保存好后点击左边的按钮submit 进行提交,这就完成利用 hue 和 oozie 来提交定时任务,执行的时候可以点击 Jobs 查看 MapReduce 程序的过程,也可以点击 Workflow 具体查看调度执行的情况。
2、验证
如果出错,点击查看 Logs,Logs 是排错的唯一依据,执行完之后验证是否出错,在文件的根目录下的 oozie 中有 output666,双击 part-r-00000, 点击 Open in Browser, 确定里面的内容为单词统计的内容,这就完成了 MapReduce 程序的提交。
二、直接提交 MapReduce 程序
直接提交 MapReduce 程序,相当于提交一个架包。
点击 Query 下的 Editor,选择 MapReduce 程序,选择架包,然后进行添加Properties,参数不变。