maptask的并行度

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/W609392362/article/details/79547760

maptask的并行度决定map阶段的任务处理并发数量。进而影响到整个job的处理速度。maptask的并行度是不是越多越好?并行度又是如何决定的?

先说maptask的并行度是如何决定的.

一个job的map阶段的并行度由客户端提交job时决定。而客户端对map阶段并行度规划的逻辑为:将待处理的数据进行逻辑切片(即按照一个特定切片的大小,将待处理的数据划分为多个split),然后每一个spilt分配给一个maptask并行实例处理。

切片逻辑:

    1)若一个文件大小小于一个切片的大小。当做一个切片处理。

    2)若一个文件大小大于一个切片,将拆分成多个切片,取模剩下的也会当做一个切片。

怎样确定切片的大小?

    跟设置切片大小参数有关,块的大小有关

mapreduce.input.fileinputformat.split.maxsize

mapreduce.input.fileinputformat.split.minsize

max(minsize,min(blocksize,maxsize))

每个map的执行时间至少一分钟

因为在MRappMaster在调度maptask或reducetask都会花费个几秒钟,如果map执行时间过短,那么会花掉很多时间在调度少。造成资源的浪费。


猜你喜欢

转载自blog.csdn.net/W609392362/article/details/79547760