如何在hadoop中检查map任务的内存占用

jckbn6z7  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(472)

我知道我可以通过设置jvm参数来控制map(或reduce)任务的最大内存。但是我想知道是否有一种方法可以查看任务的当前内存使用情况?

yshpjwxd

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”。

相关问题