MapReduce 编程模型及实践

作者:禅与计算机程序设计艺术

1.简介

在这篇文章中,我们将学习如何利用 Hadoop 的 MapReduce 编程模型进行分布式计算,并提出一些解决实际问题的经验。MapReduce 是 Hadoop 中的一种编程模型,它把一个大的任务分成多个小任务,并通过 Map 和 Reduce 操作把它们映射到不同的节点上执行,最后再汇总得到结果。正如它的名字一样,MapReduce 模型由两个阶段组成,分别是 Map 和 Reduce。
首先,Map 将输入数据集中的每一个元素映射成为一对键值对(key-value pair),其中 key 为元素的一个特征或标识符,而 value 为该特征的值。然后,所有的键值对会根据 key 被排序、分组,并分配到相同的机器上,然后这些机器上的进程会读取自己所分配到的键值对。其次,Reduce 将各个节点上的键值对合并起来,生成最终的输出结果。
因此,整个过程可以概括如下:

1) 数据集输入到 HDFS (Hadoop Distributed File System)

2) Map 函数处理输入的数据,产生中间键值对

3) Shuffle 和 Sort 操作:当各个 mapper 产生中间键值对后,需要进行 shuffle 和 sort 操作,shuffle 可以理解为数据的重新分配,sort 就是对 mapper 生产的中间键值对进行整体排序。

4) Reducer 对中间键值对进行合并,产生最终结果

5) 输出结果

基于以上步骤,MapReduce 编程模型使得巨大的海量数据集可以在集群上快速地进行分

猜你喜欢

转载自blog.csdn.net/universsky2015/article/details/132256007