Hadoop一台机器只运行一个任务

时间:2013-08-30 00:59:39

标签: java memory hadoop mapreduce mapr

我目前正在开发一个hadoop计划。该程序被Hadoop杀死,因为映射器任务器占用了大量内存(大约7G)。有没有办法让一台机器一次只运行一个任务?

我尝试了下面显示的设置,但它没有用。这项任务被hadoop杀死了。

conf.set("mapreduce.tasktracker.reserved.physicalmemory.mb", "7000");
conf.set("mapred.tasktracker.map.tasks.maximum", "1");

群集正在使用mapr-m3,每台计算机都有15.6GB内存,可用性为70%。

1 个答案:

答案 0 :(得分:0)

我认为您必须设置虚拟机选项(这适用于map和reduce任务):

mapred.child.java.opts=-Xmx7000m

如果您支持新API,则只能使用以下内容为映射器指定:

mapreduce.map.java.opts=-Xmx7000m

我有类似的问题,并且还记录了虚拟机堆积,更多内容如下:
small blog post about checking java heap sizes

请注意,还在节点上运行Reducer,因此它们可能会竞争内存,请确保在必要时限制reduce插槽的数量。