hadoop-shuffle Wordcount详解
转载地址: https://blog.****.net/Peter_Changyb/article/details/82682422
wordcount为例详细阐述shuffle的实现过程
1. 对HDFS输入的文件进行切割为KV形式
2.在mapper方法中执行,分割单词为KV形式。
3.shuffle在Map端的三个操作:partition(多节点的相同K合并),sort(键值对哈希码排序),combine(单节点上相同K合并)
4.shuffle在Reduce端的两个个操作:拉取partition,merge,sort
-
1. 拉取partition
-
-
hadoop决定有多少个reducer的时候会规定有多少个partition,每一个reducer拉取自己要处理的那个分组的全部成员。例如,某台节点要处理所有以a开头的键值对,它就会将所有mapper中的以a开头的那一组全部拉取过来。
-
-
2. merge
-
-
在每一个reducer上,将具有相同键的键值对生成另外一个新的键值对,键是以前的键,键值是一个以前键值的集合。
-
-
3. sort
-
-
在每一台reducer节点上,将新生成的键值对进行排序,根据 哈希码值。
.
5. Reduce操作
6. 写出到HDFS:在每一台reducer节点上将文件写入,实际上是写成一个一个的文件块,但对外的表现形式是一整个大的结果文件。