我知道我可以通过设置 JVM 参数来控制映射(或减少)任务的最大内存。但我想知道是否有办法查看任务的当前内存使用情况?
问问题
1824 次
1 回答
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 章 -> “调整作业” -> “分析任务”。
于 2012-09-08T06:39:16.573 回答