我正在用一个简单的用例深入研究如何控制在蜂巢中启动的映射器的数量。
这就是我所做的:
Step1 :找出系统的块大小。
hdfs getconf -confKey dfs.blocksize
Output : 134217728 => 128 Megabytes (MB)
Step2 :在HDFS中放置了一个392781672字节(392 MB)的文件,并在其上创建了一个表
第3步:执行一次简单的计数(从表中选择count(1))。
Mappers : 3
Reducers : 1
这是预期的。
第4步:现在更改了设置:
set mapred.min.split.size = 392503151
set mapred.max.split.size = 392503000
第5步:从表中选择一个选择计数(1) 它仍会触发3个映射器和1个减速器。
Hadoop job information for Stage-1: number of mappers: 3; number of reducers: 1
问题:我希望这只能运行1个映射器,因为现在文件大小和我的最大分割大小是相同的,那么为什么它不遵循这个原则。