10.EMR-MR 节点 WordCount 案例演示|学习笔记

本文涉及的产品
对象存储 OSS,20GB 3个月
大数据开发治理平台DataWorks,Serverless资源组抵扣包300CU*H
对象存储 OSS,内容安全 1000次 1年
简介: 快速学习10.EMR-MR 节点 WordCount 案例演示

开发者学堂课程【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。image.png4、因为要打jar包,所以还要加一个依赖,加一个插件,插件可以随便网上找一个,编写程序,建一个Java class文件路径复制,代码也去Emr的官方文档上面找,它有详细的解释,可以把直接复制下来,先导入一下。

5、ac信息需要改成自己的,endpoint也要改成自己的信息,oss的控制台上可以直接查看,主要看是在哪个region上对应的,就使用哪个endpoint就可以。onaliyun emr_wordcount03-1.0- SNAPSHOT,jar这个是准备要上传的jar包,如果没有可以创建一个bucket,如果有就用原来那个,路径是放在这的,可以新建目录。wordcount03/datas/inputsl

image.png

6、在这个路径下面上传原始数据,可以先看一下原始数据,原始数据如下:

hadoop emr hadoop dw

hive hadoop

dw emr

7、上传成功,返回到datas的目录下面,新建一个放jar包的。

image.png

8、 oss准备好了,登录 Dadestudio,也是上海瑞金的,项目已经配置好了emr的引擎,检查一下,主要使用的是zn_demo集群,需要先新建一个业务流程。aaa emr_wordcount

9、打开业务流程下面有个Emr的模块,因为项目有两个引擎,所以会有两个引擎的信息,主要使用的是emr_ onallyun emr_ clus这个。新建资源emrjar,点击上传jar包,之前演示的没有配置ak,所以用已经准备好了的jar包,这个已经配置了ak信息。

8、因为需要全局,所以加一个没有的名字,选择引擎实例,存储在oss上,如果是第一次使用,点一键授权,已经授权过了,所以直接选择 bucketcount03,新建。

image.png9、原始数据还不在oss上面,提交上去,可以看到已经存在了。

image.png

10、数据开发,新建emr任务,demo wordcount03

image.png

11、引擎还是选择原来的那个,使用引用资源的方式,右键引用资源,它就会多出这两行代码,补齐代码,输入和输出的路径。检查没有问题后执行。显示执行成功,回到oss看一下,可以下载一个看一下。Dit2,为了方便查看,新建emrhive节点,复制语句。

DROP TABLE IF EXISTS wordcount03 result_ tb;

CREATE EXTERNAL TABLE IF NOT EXISTS wordcount03_ result_ tb

' word' STRING COMMENT‘单词',

’cout‘ STRING COMMENT '计数 '

ROW FORMAT delimited fields terminated by 'lt '

location'oss://onaliyun-bucket-2/emr/wordcount03/datas/outputs/';

SELECT * FROM wordcount03 result tb;

12、执行,得到的结果和预期的相似。

image.png

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
一站式大数据开发治理平台DataWorks初级课程
DataWorks 从 2009 年开始,十ー年里一直支持阿里巴巴集团内部数据中台的建设,2019 年双 11 稳定支撑每日千万级的任务调度。每天阿里巴巴内部有数万名数据和算法工程师正在使用DataWorks,承了阿里巴巴 99%的据业务构建。本课程主要介绍了阿里巴巴大数据技术发展历程与 DataWorks 几大模块的基本能力。 课程目标 &nbsp;通过讲师的详细讲解与实际演示,学员可以一边学习一边进行实际操作,可以深入了解DataWorks各大模块的使用方式和具体功能,让学员对DataWorks数据集成、开发、分析、运维、安全、治理等方面有深刻的了解,加深对阿里云大数据产品体系的理解与认识。 适合人群 &nbsp;企业数据仓库开发人员 &nbsp;大数据平台开发人员 &nbsp;数据分析师 &nbsp;大数据运维人员 &nbsp;对于大数据平台、数据中台产品感兴趣的开发者
相关文章
|
4月前
|
SQL 测试技术 流计算
EMR Remote Shuffle Service实践问题之Leader节点变化导致的中断如何解决
EMR Remote Shuffle Service实践问题之Leader节点变化导致的中断如何解决
|
6月前
|
分布式计算 DataWorks 调度
DataWorks产品使用合集之如何在DataWorks on EMR上创建Spark节点并指定DLF的catalog
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
72 8
|
7月前
|
SQL 分布式计算 DataWorks
DataWorks on emr 创建spark节点指定dlf的catalog?
DataWorks on emr 创建spark节点指定dlf的catalog?
105 0
|
SQL 存储 DataWorks
视频-《 EMR 数据开发》|学习笔记(四)
快速学习视频-《 EMR 数据开发》
236 0
视频-《 EMR 数据开发》|学习笔记(四)
|
弹性计算 资源调度 运维
视频-《 EMR 集群运维与排障》|学习笔记(四)
快速学习视频-《 EMR 集群运维与排障》
204 0
视频-《 EMR 集群运维与排障》|学习笔记(四)
|
云安全 Java Shell
EMR主节点内存异常100%,hbase服务异常
EMR主节点内存异常100%,hbase服务异常
|
存储 SQL 弹性计算
走进开源大数据平台 EMR | 学习笔记
快速学习走进开源大数据平台 EMR
走进开源大数据平台 EMR | 学习笔记
|
存储 消息中间件 弹性计算
EMR 开通与演示 | 学习笔记
快速学习 EMR 开通与演示
EMR  开通与演示 | 学习笔记
|
存储 缓存 运维
EMR 的存储解决方案 | 学习笔记
快速学习 EMR 的存储解决方案
EMR 的存储解决方案 | 学习笔记
|
存储 SQL 机器学习/深度学习
走进开源大数据平台 EMR | 学习笔记
快速学习走进开源大数据平台 EMR,介绍了走进开源大数据平台 EMR 系统机制, 以及在实际应用过程中如何使用。
走进开源大数据平台 EMR | 学习笔记