在应用程序执行时更改dfs.block.size

e4eetjau  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(253)

因为dfs.block.size是一个hdfs设置,所以如果在应用程序执行期间更改它,应该不会有什么区别,对吧?例如,如果作业文件的块大小为128,则我调用

hadoop jar /path/to/.jar xxx -D dfs.block.size=256

这会有所不同吗?还是我需要在将文件保存到hdfs之前更改块大小?dfs.block.size和任务的拆分大小是否直接相关?如果我是正确的,他们不是,有没有办法指定一个分裂的大小?

2uluyalo

2uluyalo1#

决定每个mr拆分大小的参数可以通过
mapred.max.split.size和mapred.min.split.size
“mapred.max.split.size”,可以通过conf对象为每个作业单独设置。不要更改“dfs.block.size”,它也会影响hdfs。它会更改执行的输出块大小。
如果mapred.min.split.size小于块大小,mapred.max.split.size大于块大小,则向每个Map任务发送1个块。块数据将根据所使用的输入格式拆分为键值对。

相关问题