java编写mapreduce实际应用_动手写的第一个MapReduce程序--wordcount

本文通过一个简单的WordCount实例,详细讲解如何使用Java编写MapReduce程序。从理解MapReduce处理流程,到编写Mapper和Reducer,再到设置配置和打包运行,最后解决可能出现的问题,一步步带你入门Hadoop MapReduce编程。
摘要由CSDN通过智能技术生成

引语:

之前运行过了hadoop官方自带的第一个例子wordcount,这次我们自己手写一个,这个相当于是编程语言中的helloworld一样.

首先我们了解一下我们要写的MapReduce是处理的哪个部分,我们知道hadoop处理文件是先将要处理的文件拆分成很多个部分,分别处理完成,最后再将结果给汇聚起来,

形成最终的处理结果.(也就是分治法的思想)我们接下来举个单词统计的例子,看看我们写的代码是整个MapReduce过程中的哪些部分.

具体MapReduce的过程例子

首先咱们有这么一个文件,文件内容如下:

hello world hello java

hello hadoop

很简单的一个文件就两行.那么hadoop是怎么做单词统计的呢?我们用步骤来描述下:

第一步:读取这个文件,按行来将这个文件每一行的单词给拆分出来,然后形成很多key/value的结果,处理完就是这样

第二步:排序

排序完会变成这样的结果

第三步:合并

合并后的结果如下

第四步:汇聚结果

到第四步完成,单词统计其实也就完成了.看完这个具体的实例,想必大家对mapreduce的处理过程有了一个比较清晰的理解.

然后我们要知道第二步和第三步是hadoop框架帮助我们完成的,我们实际上需要写代码的地方是第一步和第四步.

第一步对应的就是Map的过程,第四步对应的是Reduce的过程.

编写mapreduce代码

现在我们要做的就是完成第一步和第四步的代码

1.创建项目

dd9d3c2df1fb0672c9294b9e95900e0c.png

da80b296e222d1090455784c8f4a2c37.png

创建一个普通的java项目就行,然后一路next点过去,项目名自己取一个.

2.引入到时用到的hadoop的包,我这里用的是hadoop-3.2.0的版本,需要引入哪些包呢?

要引入的包:

(1).hadoop目录下share/hadoop/common下的包(除了那个test的包,官方的测试例子,可以不需要引入)

(2).和上一条一样的common下lib中的包

(3).hadoop目录下share/hadoop/mapreduce下的包

(4).和上一条一样mapreduce下的lib中的包

然后在idea中引入这些包,点击File->Project Structure->Modules

点击右边的小加号来引入刚才说的那些jar包

bbc831d31eefaf566103257b21eac112.png

3.引入包完成以后,我们创建一个叫WordCount的java文件,然后开始敲代码

这里直接贴一下代码,__要注意import的部分,是不是和我一样?__因为好些个名字一样的类,来自于不同的jar,容易弄错.

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值