Analyze the killed java process in hadoop cluster

时间:2018-03-06 13:02:17

标签: java mapreduce mapr

Java program is executing in Hadoop cluster. It got OutOfMemoryError during the execution and process stopped. I want to analyze the killed java process for memory & other details. Where i can find the killed process log files? I used sar utility to analysis the memory but it shows only system memory instead of process memory.

2 个答案:

答案 0 :(得分:1)

您可以使用-XX:ErrorFile=<your location>/hs_err_pid<pid>.log作为JVM参数来设置hs_error文件位置。

答案 1 :(得分:0)

首先,您的JVM可能还没有为您的应用程序配置足够的堆大小。

那就是说,根据我的经验,我有一点建议。我认为您应该启用这些标志来调查哪些对象占用了太多空间。

-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=path

第一个标志是在OOM异常的情况下转储堆,第二个标志是设置JVM保存转储文件的路径。

获取堆转储文件后,您应该使用Memory Analyzer Tool(https://www.eclipse.org/mat/)来查看应用程序可能导致的内存泄漏。

此外,测量GC过程非常重要,您可以使用这些标记来完成此操作。

-XX:+PrintReferenceGC 
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps - 
XX:+PrintTenuringDistribution -XX:+PrintAdaptiveSizePolicy 
-XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=10M -
Xloggc:/some/where/gc.log

可以使用此在线工具分析GC.log

http://gceasy.io/