最近整了很长一段时间才了解了map reduce的工作原理,shuffle是mapreduce的心脏,了解了这个过程,有助于编写效率更高的mapreduce程序和hadoop调优。自己画了一幅流程图(点击查看全图):

另外,还找到一篇文章,很好,引用一下。
Hadoop
是Apache 下的一个项目,由HDFS、MapReduce、HBase、Hive 和ZooKeeper等成员组成。其中,HDFS 和MapReduce 是两个最基础最重要的成员。
HDFS是Google GFS 的开源版本,一个高度容错的分布式文件系统,它能够提供高吞吐量的数据访问,适合存储海量(PB 级)的大文件(通常超过64M),其原理如下图所示:

采用Master/Slave 结构。NameNode 维护集群内的元数据,对外提供创建、打开、删除和重命名文件或目录的功能。Da

本文详细介绍了Hadoop MapReduce的工作原理,重点解析了Shuffle和Sort阶段。Shuffle是MapReduce的核心,涉及数据的排序、分区和合并。Map阶段的数据首先在内存缓冲区进行预排序,溢出时写入磁盘并进行二次排序。Reduce阶段通过HTTP获取Map任务的输出,使用多个拷贝线程并行获取数据。数据经过归并排序后供Reduce函数处理。Map端的HTTP fetch与Reduce端的copy阶段是两个不同过程,分别负责数据传输和拷贝。
最低0.47元/天 解锁文章
514

被折叠的 条评论
为什么被折叠?



