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

0sgqnhkj  于 2021-06-03  发布在  Hadoop
关注(0)|答案(4)|浏览(556)

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

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

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

xzlaal3s

xzlaal3s1#

我知道这个问题很老了,但是对于那些问同样问题的人,你可以检查一下这个值被封顶的一些bug
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

643ylb08

643ylb082#

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

ecfdbz9o

ecfdbz9o3#

hadoop-2.6.0 org.apache.hadoop.mapred.maptask.java
第427行:不能将mapreduce.task.io.sort.mb设置为超过2047

n1bvdmb6

n1bvdmb64#

“mapreduce.task.io.sort.mb”是排序文件时要使用的缓冲区内存总量(mb)。默认情况下,为每个合并流提供1mb,这将最小化查找。因此,您需要确保集群节点上有100000 mb可用内存。

相关问题