MapReduce学习(4)

网友投稿 500 2022-05-28

Map阶段详解

在Job提交前,会先将待处理的文件进行分片 (Split)。MR框架默认将一个块 (Block) 作为一个分片。客户端应用可以重定义块与分片的映射关系。

Map阶段先把数据放入一个环形内存缓冲区,当缓冲区数据达到80%左右时发生溢写 (Spill),需将缓冲区中的数据写入到本地磁盘。写入本地磁盘之前通常需要做如下处理:

分区 (Partition):默认采用Hash算法进行分区,MR框架根据Reduce Task个数来确定分区个数。具备相同Key值的记录最终被送到相同的Reduce Task来处理。

排序 (Sort):将Map输出的记录排序,例如将(‘Hi’,’1’),(‘Hello’,’1’)重新排序为(‘Hello’,’1’), (’Hi’,’1’)。

MapReduce学习(4)

组合 (Combine):这个动作MR框架默认是可选的。例如将 (’Hi’,’1’), (’Hi’,’1’),(‘Hello’,’1’), (Hello’,’1’)进行合并操作为 (’Hi’,’2’), (‘Hello’,’2’)。

合并 (Spill):Map Task在处理后会产生很多的溢出文件(spill file),这时需将多个溢出文件进行合并处理,生成一个经过分区和排序的Spill File (MOF:MapOutFile)。为减少写入磁盘的数据量,MR支持对MOF进行压缩后再写入。

MapReduce

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:HBASE技术原理(9)
下一篇:一款机械陀螺仪-四旋翼上的机械陀螺仪
相关文章