Big Data笔记:Hadoop - 初识MapReduce

Map-Reduce是一种可扩展的编程模型,可简化数据的分布式处理。 Map-Reduce包括三个主要步骤:Map,shuffle,Reduce。

Map-Reduce工作的一个简单解释是:它将一个大型任务“委派”给一群人,然后将每个人的努力结果相结合,以产生最终结果。

让我们举个例子来说明一下。你刚刚在你的办公室听到这个好消息,并为所有的同事们举行派对!你决定煮面食吃饭。你的四个朋友,喜欢烹饪,也愿意加入你。准备面食的任务涉及剁蔬菜,烹饪和装盘。

我们来剁蔬菜,这里的生蔬菜就像输入数据,你的朋友相当于计算节点(Compute nodes),而最终切好的蔬菜类似于结果。每个朋友都分配了洋葱,西红柿和辣椒,以剁碎和称重。

你也想知道你在厨房里有多少蔬菜类型。您也想在这种计算过程中切断这些蔬菜。最后,同一类的蔬菜应该在一个大碗里,标签上显示其重量等信息。

Map

Big Data笔记:Hadoop - 初识MapReduce_第1张图片

你的朋友使用他们的“处理能力(compute power)”来切蔬菜并称重。 他们需要确保不混合不同类型的蔬菜。 所以每个朋友都会生成一个映射。每一个映射对应一小碗蔬菜。

Friend X:


Friend Y:


Shuffle

这个阶段也叫做分组。 在这里,你想按照类型蔬菜给蔬菜分组。 您将厨房的不同部分分配给每种蔬菜类型,您的朋友应该对碗进行分组,以便将产品放在一起:

North End of Kitchen:

West End of Kitchen:


East End of Kitchen:

你被朋友通过Mapping and Grouping完成的工作给震撼了!厨房看起来更加有组织。 这个任务的最后阶段是衡量你实际拥有的每种蔬菜的数量。 这让我们进入了Reduce阶段。

Reduce

在这个阶段,你要求你的朋友收集相同类型的物品,把它们放在一个大碗中,并用大量的碗重量标注这个大碗。 你的朋友立即开始“减少”小碗。 最后,你就有了一堆标注良好的大碗。



总结

您的朋友(“计算节点”)刚刚执行了Map-Reduce任务,以帮助您开始烹饪。 由于您正在协调整个练习,所以您是此Map-Reduce任务的“Master”节点。 你的每个朋友都在不同的时间担任Mappers, Groupers ,Reducers的角色。 此示例演示了MapReduce的强大功能。

由Yanring翻译自http://words.sdsc.edu/words-data-science/mapreduce

你可能感兴趣的:(Big Data笔记:Hadoop - 初识MapReduce)