美文网首页
Big Data笔记:Hadoop - 初识MapReduce

Big Data笔记:Hadoop - 初识MapReduce

作者: Yanring_ | 来源:发表于2017-05-12 20:59 被阅读0次

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

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

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

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

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

    Map

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

    Friend X:
    <tomatoes, 5 lbs>
    <onions, 10 lbs>
    <garlic, 2 lbs>

    Friend Y:
    <onions, 22 lbs>
    <green peppers, 5 lbs>

    Shuffle

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

    North End of Kitchen:
    <tomatoes, 5 lbs>
    <tomatoes, 11 lbs>

    West End of Kitchen:
    <onions, 10 lbs>
    <onions, 22 lbs>
    <onions, 1.4 lbs>

    East End of Kitchen:
    <green peppers, 3 lbs>
    <green peppers, 10 lbs>

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

    Reduce

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

    <tomatoes, 16 lbs>
    <green peppers, 13lbs>
    <onions, 33.4 lbs>

    总结

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

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

    相关文章

      网友评论

          本文标题:Big Data笔记:Hadoop - 初识MapReduce

          本文链接:https://www.haomeiwen.com/subject/bxdtxxtx.html