mr的分片机制

2020-09-20 17:40发布

mr的分片机制

mr的分片机制

3条回答
上来打杂的
2021-12-15 16:18

   简介:

Hadoop将MapReduce的MapReduce的输入数据划分为等长的小数据块,称之为输入分片(inputSpilt)或者简称“分片”Hadoop为为一个分片构建一个单独的map任务,并由该任务来运行用户自定义的map方法,从而处理分片的每一条数据

分片大小的选择

1. 拥有许多分片,每个分片所需时间小于整体的时间

2. 并行处理分片,且每个分片比较小,负载均衡,好的计算机处理更快,可以腾出时间做其他计算

3. 分片太小,管理分片的时间和构建map的时间将会决定整个作业执行使时间

4. 分片跨数据块会使占用带宽效率更低

5. 最佳分片大小应该和HDFS的块大小一致。hadoop2.x默认128M

创建分片的过程

1.获取文件的位置以及大小

2.判断文件是否可以分片(压缩格式有的可以分片,有的不行)

3.获取分片大小

4.剩余文件的大小/分片的大小>1.1时循环封装分片的信息,

(1).封装一个分片的信息(包含路径,分片的起使偏移量,要处理的大小,分片包含的块信息,分片中包含的块在那些机器上)

(2).剩余文件<1>

读取分片的细节:如果有多个分片

第一个分片读到末尾再多读一行

  因为一般来说读到最后一行的时候有很大可能不是正好一行结束因此可以一般要多读取一行。

(1)

既不是第一个分片也不是最后一个分片第一行数据舍弃,末尾多读一行

  舍弃是因为上一个块已经读过了

(2)

最后一个分片舍弃第一行,末尾多读一行



一周热门 更多>