怎么能和&我在哪里可以编辑CDH4.7中的InputSplit大小。默认情况下它是64 MB,但我想提到它为1MB

时间:2014-12-23 15:41:22

标签: hadoop mapreduce

如何以及在哪里可以编辑CDH4.7中的输入分割大小默认情况下它是64 MB,但我想提到它为1MB,因为我的MR作业运行缓慢,我想提高MR作业的速度。我想需要编辑cor-site属性IO.file.buffer.size,但CDH4.7不允许我编辑,因为它是只读的。 只是重新讨论下面的问题,我的问题就发布了 如何以及在哪里可以编辑CDH4.7中的输入分割大小默认情况下它是64 MB,但我想提到它为1MB,因为我的MR作业运行缓慢,我想提高MR作业的速度。我想需要编辑cor-site属性IO.file.buffer.size,但CDH4.7不允许我编辑,因为它是只读的。

1 个答案:

答案 0 :(得分:0)

您可以单独为每个作业设置参数“mapred.max.split.size”。

您不会更改“dfs.block.size”,因为Hadoop使用少量大文件比使用大量小文件更好。其中一个原因是FileInputFormat以这样一种方式生成拆分,即每个拆分都是单个文件的全部或部分。如果文件非常小(“小”意味着明显小于HDFS块)并且有很多文件,那么每个地图任务将处理很少的输入,并且会有很多(每个文件一个),每个都会增加额外的簿记费用。比较一个分成16个64mb块的1gb文件和10.000个左右的100kb文件。 10.000个文件各使用一个映射,作业时间比单个输入文件和16个映射任务的等效时间慢几十或几百倍。

您可以使用命令行中的-D mapred.max.split.size=..直接从命令中更改它,并且不一定永久更改任何文件。