我知道我可以通过设置 JVM 参数来控制映射(或减少)任务的最大内存。但我想知道是否有办法查看任务当前的内存使用情况?
启用远程 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 章 ->“调整作业”->“分析任务”。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)