美文网首页
Hadoop Data Flow

Hadoop Data Flow

作者: NEO_X | 来源:发表于2019-02-15 22:20 被阅读0次

    MapReduce 是一种编程模型, 它通过将工作划分为独立的任务, 并在一组计算机上并行执行任务, 从而使大量数据得以处理和生成。MapReduce 编程风格是由函数式编程构造映射和减少所激发的, 通常用于处理数据列表。在高级别, 每个MapReduce程序将输入数据元素列表转换为输出数据元素列表两次, 一次在映射阶段, 一次在还原阶段。

    本章首先介绍MapReduce编程模型,并描述数据如何流经模型的不同阶段。示例将展示如何使用python编写MapReduce作业可。

    数据流

    MapReduce 框架由三个主要阶段组成:map,shuffle和sort,reduce。本节介绍每个阶段。

    map映射阶段

    MapReduce 应用程序的第一个阶段是映射阶段。在映射阶段中, 函数(称为映射器)处理一系列键值对。映射程序依次处理每个键值对,生成0个或多个键值对。

    2-1MapReduce.png

    例如, 考虑一个映射器, 其目的是将句子转换为单词。这个映射器的输入是包含句子的字符串, 映射器的功能是将句子拆分为单词并输出单词。

    2-2wordcount.png

    Shuffle-sort清洗排序阶段

    MapReduce的第二阶段是是shuffle和sort。当map程序开始完成时,从映射阶段的中间输出移动到reduce。将map输出内容移到reduce的过程称为shuffle。

    shuffle由一个分区函数来处理, 称为分区程序。分区程序用于控制键值对从map程序到reduce的流动。分区程序给出了map的输出键和的数量, 并返回预期reduce的索引。分区程序确保同一键的所有值都发送到同一减速器。默认的分区程序是基于哈希的,它计算映map输出密钥的哈希值, 并基于此结果分配分区。

    reduce处理数据的最后阶段是排序过程。每个分区的中间键和值按Hadoop框架排序, 然后提交给reduce。

    reduce聚合阶段

    MapReduce 的第三阶段是reducer,在这个阶段,一个值的迭代器提供给reducer函数。值的迭代器是Mapper阶段输出中每个唯一键的唯一值集。reducer聚合每个唯一键的值, 并产生零个或多个输出键-值对。

    例如,考虑一个reducer, 其目的是对键的所有值进行求和。这个reducer的输入是一个键的所有值的迭代器,计算所有值的和。然后,reducer输出一个键值对,其中包含输入键和输入键值的总和。

    2-5reduce.png

    更多信息请访问 https://blue-shadow.top/

    相关文章

      网友评论

          本文标题:Hadoop Data Flow

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