【发布时间】:2012-09-08 14:39:16
【问题描述】:
我知道我可以通过设置 JVM 参数来控制 map(或 reduce)任务的最大内存。但我想知道是否有办法查看任务的当前内存使用情况?
【问题讨论】:
我知道我可以通过设置 JVM 参数来控制 map(或 reduce)任务的最大内存。但我想知道是否有办法查看任务的当前内存使用情况?
【问题讨论】:
启用远程 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 权威指南”,第 5 章 -> “调整作业” -> “分析任务”。
【讨论】: