开发者学堂课程【DataWorks一站式大数据开发治理平台精品课程:10.EMR-MR 节点 WordCount 案例演示】与课程紧密联系,让用户快速学习知识
课程地址:https://developer.aliyun.com/learning/course/81/detail/1247
10.EMR-MR 节点 WordCount 案例演示
内容介绍
一、需求准备
二、IDE开发MR作业
三、OSS
四、Dataworks
五、实操
内容简介:
实现:基于 EMR 在 DataWorks 上使用 MR 节点实现分布式单词个数统计(以存储在OSS上为例)。实操一共分为4个步骤,第一步是需求准备,配置好 Dataworks EMR引擎,准备原始数据以及预期结果。第二步是在ide上面开发mr的作业,添加 poem 依赖,编写代码打jar包。第三步在oss上面新建存储路径以及上传原始数据。第四步在 Dataworks 上提交资源,提交资源,新建 emr-mr 的任务,执行任务,最后查看结果。
一、需求准备
1、原始数据
Input01.txt
1 hadoop emr hadoop dw
2 hive hadoop
3 dw emr
2、预期结果
1 wordcount
2 dw2
3 hadoop 3
4 emr2
5 hive 1
准备了一个 Input01.tx 的文件,里面一共是三行数据,8个单词预期的结果是统计出每1个单词的个数。
二、IDE开发MR作业
1、添加pom依赖
hadoop 依赖可以在 EMR 管控台查看集群版本。添加的是2.8.5的版本,因为 emr集群用的是2.8.5的。
2、编写程序,打jar包
要在 MapReduce 中读写 OSS ,需要配置如下的参数。
3、WordCount代码:
JAVA 代码为例,将 Hadoop 官网 WordCount 例子做如下修改。对该实例的修改只是在代码中添加了 AccessKey ID 和 AccessKey Secret 的配置,以便作业有权限访问OSS 文件。
三、OSS
原始数据上传至OSS
在 OSS bucket 中建/emr/datas/wordcount02/inputs目录,存入原始数据。顺便新建一个/emr/jars 目录 ,等下存放 jar 资源。里面存储的是 input01.txt 数据。
四、Dataworks
1、提交jar资源
(1)依赖在业务流程 EMR 引擎下,新建 EMR jar 资源,存储在 oss bucket的/emr/jars目录下(首次使用需要一键授权) , 提交。
(2)先新建一个业务流程,在业务流程下面有一个 EMr 的模块,模块下面找到资源,新建以后直接上传刚刚打好的jar包,路径是选择 oss,如果是首次使用,需要点一键授权,那路径就是新建的 emr jars 路径。注意,新建完后需要点提交,这样才可以提交到oss上面。是新建MR的review的任务,那在同样是业务流程下面找到数据开发,新建节点一m二m二点,使用已编辑代码内容,是以使用了引用资源的方式,找到刚刚那个新建的加资源,右键引用资源,那就会出现两行代码。
2、新建MR任务
(1)在业务流程EMR引擎下,新建 EMR MR 节点。
(2)用引用资源的方法调用jar包。
(3)编辑,执行EMR-MR命令。##@resource_reference{"onaliyun_mr_wordcount-1.0-SNAPSHOT.jar"}
onaliyun_mr__wordcount 1.0-SNAPSHOT.jar cn.apache.hadoop.onaliyun.examples.EmrWordCount oss://onaliyun-bucket-2/emr/datas/wordcount02/inputs oss://onaliyun-bucket 2/emr/datas/wordcount02/outputs
那补充后面的主路径以及输入路径和输出路径,输入是 input,输出是 output,要保证 output 在 oss 上面是不存在的,编辑完以后就可以直接点运行来执行,执行成功以后可以查看结果。
3、查看结果
返回 OSS 控制台,就会有一个 output 的目录,点开以后就会有三个 part 可以下载下来看结果,为了方便查看可以在 dataworks 上面建 hive 的外表,先建一个:新建 EMR HIVE 节点,建挂载在 OSS 上的 hive 外表,读取表数据。可以看到代码:
CREATE EXTERNAL TABLE IF NOT EXISTS wordcounte2_ result_ tb
(
‘word' STRING COMMENT '
单词
' ,
‘cout’STRING COMMENT '
技数'
)
ROW FORMAT delimited fields terminated by’ \t ‘
location'oss://onaliyun-bucket-2/emr/datas/wordcounte02/0utputs/';
SELECT * FROM wordcount02_ result_ tb;
得到结果集。
五、实操
1、新建一个项目,onaliyun emr wordcount03。
2、配置 poem 的依赖,依赖可以去官方文档上找,可以进入 emr 的官方文档,EMr的官方文档下面有个mapreduce开发手册,复制以下代码:
<dependency>
<groupId>org . apache . hadoop</groupId>
<artifactId>hadoop- mapreduce-cl ient -common</arti factId>
<version>2.6.0</version>
</ dependency>
<dependency>
<groupId>org . apache . hadoop</groupId>
<artifactId>hadoop- common</artifactId>
<version>2.6. 0</version>
</dependency>
3、版本用的是2.8.5,可以到那个 emr 的集群上面看一下。所以把版本改成2.8.5。