在编写mapreduce程序时,经常会出现程序卡住,最后报OutOfMemoryError: Java heap space的错误。
是因为mapreduce的mapper,reducer的默认对内存大小是200m,可以通过
conf.set("mapreduce.admin.map.child.java.opts", "-Xmx512m");或者
conf.set("mapred.map.child.java.opts", "-Xmx512m");设置mapper阶段的堆内存大小
conf.set("mapreduce.admin.reduce.child.java.opts", "-Xmx512m");或者
conf.set("mapred.reduce.child.java.opts", "-Xmx512m");设置reducer阶段的堆内存大小
conf.set("mapred.child.java.opts", "-Xmx512m");设置 jvm启动的子线程可以使用的最大内存 默认是-Xmx200m
conf.setInt("mapreduce.task.io.sort.mb", 256);Map Task缓冲区所占内存大小。默认100
具体参数地址:https://blog.youkuaiyun.com/QQ1012470073/article/details/88895665