如何在Hadoop中检查Map Task的内存占用量

时间:2012-09-07 08:50:27

标签: hadoop jvm mapreduce

我知道我可以通过设置JVM参数来控制地图(或减少)任务的最大内存。但我想知道是否有办法查看任务的当前内存使用情况?

1 个答案:

答案 0 :(得分:6)

启用远程HPROF分析。 HPROF是JDK附带的分析工具,虽然是基本的,但它可以提供有关程序的CPU和堆使用情况的有价值的信息。 要使用它,您可以在代码中尝试:

conf.setBoolean("mapred.task.profile", true);
conf.set("mapred.task.profile.params", "-agentlib:hprof=cpu=samples," +
    "heap=sites,depth=6,force=n,thread=y,verbose=n,file=%s");
conf.set("mapred.task.profile.maps", "0-2");
conf.set("mapred.task.profile.reduces", ""); // no reduces

参见“Hadoop The Definitve Guide”,第5章 - > “调整工作” - > “分析任务”了解更多详情。