如何以及在哪里可以编辑 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 不允许我编辑,因为它是只读的。
参数"mapred.max.split.size"可以为每个作业单独设置,这是你要找的。
您不会更改"dfs.block.size",因为Hadoop处理少量大文件比处理大量小文件更好。其中一个原因是 FileInputFormat 生成拆分的方式是每个拆分都是单个文件的全部或部分。如果文件非常小("小"意味着比HDFS块小得多(并且有很多,那么每个地图任务将处理很少的输入,并且会有很多输入(每个文件一个(,每个都会增加额外的簿记开销。比较一个 1gb 文件分成 16 个 64mb 块和 10.000 个左右的 100kb 文件。10.000 个文件每个使用一个地图,作业时间可能比具有单个输入文件和 16 个地图任务的等效文件慢数十倍或数百倍。
您可以使用命令行中的-D mapred.max.split.size=..
直接从命令中更改它,而不必永久更改任何文件。