0
我有一个大小为136MB
的输入文件,我启动了一些WordCount
测试,我只监视一个映射器。然后我在我的hdfs-site.xml
中设置dfs.blocksize
到64MB
,我仍然得到一个映射器。我做错了吗?hadoop大文件没有分割
我有一个大小为136MB
的输入文件,我启动了一些WordCount
测试,我只监视一个映射器。然后我在我的hdfs-site.xml
中设置dfs.blocksize
到64MB
,我仍然得到一个映射器。我做错了吗?hadoop大文件没有分割
dfs.block.size
不是一个人扮演的角色,建议不要改变为 ,因为它适用于全局HDFS。在MapReduce的分割大小由该公式计算
max(mapred.min.split.size, min(mapred.max.split.size, dfs.block.size))
所以,你可以设置在驱动程序类,这些属性
conf.setLong("mapred.max.split.size", maxSplitSize); conf.setLong("mapred.min.split.size", minSplitSize);
还是在配置文件中
<property> <name>mapred.max.split.size</name> <value>134217728</value> </property> <property> <name>mapred.min.split.size</name> <value>134217728</value> </property>
更改'dfs.blocksize'只会影响* new *文件。 –
您可以检查群集中有多少地图插槽可用,以及群集中配置的默认块大小是多少。 –
@RemusRusanu非常感谢你。你可以发布它作为回应,以便我可以验证;) – Newben