如以下链接所述,映射任务的堆大小的默认值为 200 MB,但是我需要增加它,因为我需要将其增加到mapreduce.task.io.sort.mb
至少 300 或 400MB。我无权访问 Hadoop 配置文件以进行此类更改,因此我必须在我的代码中进行。我怎样才能做到这一点?
问问题
7770 次
2 回答
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 倍
于 2013-10-31T04:51:49.310 回答
-1
为了以编程方式设置/更改 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");
...
}
}
于 2013-10-31T04:53:19.907 回答