mapreduce.task.io.sort.mb的最大值是多少?

时间:2014-05-02 06:24:20

标签: hadoop configuration mapreduce

当我设置mapreduce.task.io.sort.mb = 100000时。我得到以下异常。

java.lang.Exception: java.io.IOException: Invalid "mapreduce.task.io.sort.mb": 100000

mapreduce.task.io.sort.mb的最大值是什么?

4 个答案:

答案 0 :(得分:8)

我意识到这个问题已经过时了,但对于那些提出同样问题的人,你可以查看一下这个值被限制的一些错误

http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.1.3/bk_releasenotes_hdp_2.1/content/ch_relnotes-hdpch_relnotes-hdp-2.1.1-knownissues-mapreduce.html

BUG-12005:Mapreduce.task.io.sort.mb上限为2047.

问题:mapreduce.task.io.sort.mb被硬编码为不允许大于2047的值。如果输入的值大于此值,则map任务将始终在此行崩溃:

https://github.com/apache/hadoop-mapreduce/blob/HDFS-641/src/java/org/apache/hadoop/mapred/MapTask.java?source=cc#L746

答案 1 :(得分:1)

hadoop-2.6.0 org.apache.hadoop.mapred.MapTask.java

line 427:we can't set mapreduce.task.io.sort.mb exceed 2047

答案 2 :(得分:0)

" mapreduce.task.io.sort.mb"是排序文件时使用的缓冲区内存总量,以兆字节为单位。默认情况下,为每个合并流提供1MB,这应该最小化搜索。因此,您需要确保群集节点上有100000 MB可用内存。

答案 3 :(得分:0)

默认情况下为100MB,最高可达2047 MB​​。