我知道我可以通过设置jvm参数来控制map(或reduce)任务的最大内存。但是我想知道是否有一种方法可以查看任务的当前内存使用情况?
yshpjwxd1#
启用远程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章->“tuning a job”->“profiling tasks”。
1条答案
按热度按时间yshpjwxd1#
启用远程hprof分析。hprof是jdk附带的一个评测工具,虽然它是基本的,但可以提供有关程序cpu和堆使用情况的有价值的信息。要使用它,可以在代码中尝试以下操作:
有关更多详细信息,请参阅“hadoop the definitve guide”,第5章->“tuning a job”->“profiling tasks”。