Hadoop mapreduce过程key 和value分别存什么值

Hadoop mapreduce过程key 和value分别存什么值Hadoop mapreduce过程key 和value分别存什么值

大家好,又见面了,我是你们的朋友全栈君。

转自:https://www.cnblogs.com/gaopeng527/p/5436820.html

这里以wordCount为例,直接看图就懂了:

(1)inputFormat将hdfs上要处理的文件一行一行的读入,将文件拆分成splits,由于测试用的文件较小,所以每个文件为一个split,并将文件按行分割形成<key,value>对,如图4-1所示。这一步由MapReduce框架自动完成,其中偏移量(即key值)包括了回车所占的字符数(Windows和Linux环境会不同)。

这里是把每个文件按行处理,下图有两个文件,每个文件有两行,每一行的开头字符所在位置的偏移量 ,第一行的开头偏移量自然是0,hello world共10个偏移量,加上中间的空格11个偏移量,回车再算一个,第二行的开头偏移量是12.

 

 image

图4-1 分割过程

 

  2)将分割好的<key,value>对交给用户定义的map方法进行处理,生成新的<key,value>对,如图4-2所示。

 这里是用户自定义的map处理程序,每一行的字符按“ ” 分割,分割的每一个元素都记为1,也就是map节点的所有value都是1

 image

图4-2 执行map方法

 

  3)得到map方法输出的<key,value>对后,Mapper会将它们按照key值进行排序,并执行Combine过程,将key至相同value值累加,得到Mapper的最终输出结果。如图4-3所示。

 

 image

图4-3 Map端排序及Combine过程

 

  4)Reducer先对从Mapper接收的数据进行排序,再交由用户自定义的reduce方法进行处理,得到新的<key,value>对,并作为WordCount的输出结果,如图4-4所示。

 

 image

图4-4 Reduce端排序及输出结果

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/106122.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号