Hadoop map任务个数分析

来源:互联网 发布:drums架子鼓软件下载 编辑:程序博客网 时间:2024/06/06 11:02

        Hadoop map任务个数由输入文件在HDFS上的分块个数确定。

        如果一个输入文件的大小大于BlockSize,那么这个输入文件被分成的若干个块,一个块即是一个split,map任务的个数等于块(split)的个数。

        如果一个输入文件的大小小于BlockSize,则这个文件就是一个块(其占用的存储空间等于文件的实际大小),这个输入文件将被作为一个map任务的输入。


        对于要处理大量小文件的MapReduce程序,由于一个小文件就需要启动一个Map task,太多的Map task会造成程序运行效率的低下,可以采用CombineFileInputFormat将多个input path合并成一个InputSplit送给mapper处理,从而减少Map任务的个数。



map个数的计算公式如下:

 splitsize=max(minimumsize,min(maximumsize,blocksize))。

(如果没有设置minimumsize和maximumsize,splitsize的大小默认等于blocksize)


for(file :输入目录中的每个文件)
{
file_split = 1;
if(file.size>splitsize)
{
file_split=file_size/splitsize;
}
total_split+=file_split;
}



0 0
原创粉丝点击