首页 理论教育 MapReduce的处理流程

MapReduce的处理流程

时间:2023-06-24 理论教育 版权反馈
【摘要】:MapReduce 是一种并行编程模型,将计算分为两个阶段:Map 阶段和Reduce 阶段。MapReduce 对Map 任务的结果进行聚集和混洗,然后提供给Reduce 任务作为其输入数据集。最终通过合并Reduce 任务的输出得到最终结果。MapReduce 数据处理流程如图4.1 所示。图4.1MapReduce 数据处理流程Map 任务处理①从存储系统中读取输入文件内容,存储系统可以是本地文件系统或者HDFS 文件系统等。Shuffle 与Sort①对Map 输出的对进行分区,并将结果通过网络复制到不同的Reducer 节点上。

MapReduce的处理流程

MapReduce 是一种并行编程模型,将计算分为两个阶段:Map 阶段和Reduce 阶段。首先将输入数据划分成多个块,由多个Map 任务并行计算。MapReduce 对Map 任务的结果进行聚集和混洗,然后提供给Reduce 任务作为其输入数据集。最终通过合并Reduce 任务的输出得到最终结果。MapReduce 数据处理流程如图4.1 所示。

图4.1 MapReduce 数据处理流程

(1)Map 任务处理

①从存储系统中读取输入文件内容,存储系统可以是本地文件系统或者HDFS 文件系统等。对输入文件的每一行解析成一个<key,value>对,在默认情况下,key 表示行偏移量,value 表示这行的内容。

②每一个<key,value >对调用一次map 函数。程序员需要根据实际的业务需要重写map()方法,对输入的<key,value>对进行处理,转换为新的<key,value>对输出。(www.xing528.com)

(2)Shuffle 与Sort

①对Map 输出的<key,value>对进行分区,并将结果通过网络复制到不同的Reducer 节点上。

②将不同分区的数据按照key 进行排序,相同key 的value 放到一个集合中,形成新的键值对,即<key,list(value) >对,记为<key,VALUE>。

(3)Reduce 任务处理

①调用reduce 函数处理前面得到的每一个<key,VALUE >。程序员需要根据实际的业务需要重写reduce()方法。

②将reduce 函数的输出保存到文件系统中。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈