MapReduce 数据流动

MapReduce 数据流动

MapReduce用于计算大量的数据。为了处理即将到来的数据以并行和分布式形式,数据必须从各个阶段流动。

MapReduce 数据流动

MapReduce数据流程的阶段

输入读取器

输入读取器读取即将到来的数据,并将其分割成适当大小的数据块(64 MB到128 MB)。每个数据块都与一个Map函数相关联。

一旦输入读取完数据,它会生成相应的键值对。输入文件存储在HDFS中。

注意 – 输入数据可以是任何形式。

Map函数

Map函数处理即将到来的键值对,并生成相应的输出键值对。映射的输入和输出类型可能不同。

分区函数

分区函数将每个Map函数的输出分配给适当的Reducer。可用的键和值提供给这个函数。它返回Reducers的索引。

Shuffling和Sorting

数据在节点之间/内部进行洗牌,以使其从map中移出并准备好用于reduce函数处理。有时,数据的洗牌可能需要很多计算时间。

对输入数据执行排序操作以供Reduce函数使用。在这里,使用比较函数比较数据并按排序形式排列。

Reduce函数

Reduce函数分配给每个唯一的键。这些键已经按排序顺序排列。与键关联的值可以迭代Reduce并生成相应的输出。

输出写入器

一旦所有上述阶段的数据流完成,输出写入器开始执行。输出写入器的角色是将Reduce的输出写入稳定存储。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程