三句话告诉你 mapreduce 中MAP进程的数量怎么控制?
1、果断先上结论 1.如果想增加map个数,则设置mapred.map.tasks 为一个较大的值。 2.如果想减小map个数,则设置mapred.min.split.size 为一个较大的值。 3.如果输入中有很多小文件,依然想减少map个数,则需要将小文件merger为大文件,然后使用准则2。 2、原理与分析过程 看了很多博客,感觉没有一个说的很清楚,所以我来整理一下。 先看一下这个图 输入分片(Input Split):在进行map计算之前,mapreduce会根据输入文件计算输入分片(input split),每个输入分片(input split)针对一个map任务,输入分片(input split)存储的并非数据本身,而是一个分片长度和一个记录数据的位置的数组。 Hadoop 2.x默认的block大小是128MB,Hadoop 1.x默认的block大小是64MB,可以在hdfs-site.xml中设置dfs.block.size,注意单位是byte。 分片大小范围可以在mapred-site.xml中设置,mapred.min.split.sizemapred...