由于dfs.block.size是一个HDFS设置,如果我在应用程序执行期间更改它,它应该没有区别,对吧? 例如,如果作业文件的块大小为128,则调用
hadoop jar /path/to/.jar xxx -D dfs.block.size=256
它会有所作为或者我需要在将文件保存到HDFS之前更改块大小吗? dfs.block.size与任务的拆分大小直接相关吗?如果我是正确的而他们不是,有没有办法指定分割的大小?
答案 0 :(得分:0)
可以通过
设置决定每个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大于块大小,然后发送1个块 到每个地图任务。块数据被分成基于键值对 在您使用的输入格式上。