如下面的链接所示,map任务的堆大小的默认值是200 MB,但是我需要增加它,因为我需要将mapreduce.task.io.sort.mb
增加到至少300或400MB。我无法访问Hadoop配置文件以进行此类更改,因此我必须在我的代码中执行此操作。我怎么能这样做?
答案 0 :(得分:5)
我们可以通过Configuration API设置参数。
Configuration conf = new Configuration();
conf.set("mapred.child.java.opts", "heap size here");
Job job = new Job(conf);
此外,mapred.child.ulimit应比mapred.child.java.opts中指定的堆大小高2-3倍
答案 1 :(得分:-1)
为了以编程方式设置/ chnage hadoop配置,您可以按如下方式设置驱动程序类:
public class MyDriver extends Configured implements Tool {
@Override
public int run(String[] args) throws Exception {
Configuration conf = getConf();
conf.set("mapred.child.java.opts", "-Xmx1024m -Xss600m");
conf.set("mapreduce.task.io.sort.mb", "400m");
...
}
}