在Eclipse中实现MapReduce过程

MapReduce就是将本地的文件从磁盘中拿出,经过map执行我们指定的计算程序去排序后在传入Reduce中进行处理,最后传入磁盘中。
那么我们怎么写一个计算程序呢?
首先我们先建立一个MapReduce项目
在Eclipse中实现MapReduce过程_第1张图片
然后在src传入 org.apache.hadoop.io.nativeio这个jar包,这个jar包包括我们接下来所有开发的方法,所以一定要放入。
接下来我们就要创建一个空的package,第一个文件就是你的Map文件,也是新建文件
在Eclipse中实现MapReduce过程_第2张图片
一、这里一定是Mapper文件,建立后他会自动写好方法,我们就不用写方法了
在Eclipse中实现MapReduce过程_第3张图片
这个就是我们要书写的Mapper方法,我这里以WordCount为例子,首先泛型的介绍,从左往右LongWritable就是传入的key的类型,第一个text就是传入的value的类型,第二个text就是传出key的类型,最后的InWritable就是传出value的类型。
下面的new IntWritable(1)就是每当文件中有一个单词存在我就讲传出的value值定为1,这就是我们要计算出单词数量的数量
在下放的map方法中我们要先将传入的文件信息进行字符串分割,再遍历这些使用context的写入方法,只要写入一个单词我就将key定义最开始我们封装传出的text,value就是1.

二、Reduce,同样是直接建立好的,这里我就不放图了在Eclipse中实现MapReduce过程_第4张图片
在这里我么需要将上面的泛型输入的类型定义为InWritable,输入的泛型定义为InWritable,下方的values泛型也定义为InWritable
定义一个数字,循环遍历这个value(mapper中已经定义为1),并循环value,只要存在一个单词就+1,最后将这个key和value输出

三、Job也就是中间的文件,我们需要将mapper和reduce建立起来
在Eclipse中实现MapReduce过程_第5张图片
这里要注意几点:
1.system.setproperty写入的是之前配置的HADOOP_USER_NAME ,这个环境变量就在我的电脑中配置,而且一定要与你虚拟机的管理员名字一致。
2.configuration中写的一定是你虚拟机配置文件中定义的在Eclipse中实现MapReduce过程_第6张图片也即是core-site.xml

3.在这里插入图片描述
最后环节第一个是设置输入文件地址
第二个是设置输出文件地址
这里一定要分清哪个是输入和输出,也就是一定要站在文件内容角度上考虑。

你可能感兴趣的:(在Eclipse中实现MapReduce过程)