怎样使Ambari中的Hive Service输出Java dump文件
怎样使Ambari中的Hive Service输出Java dump文件
1,选择 “Hive”
2,点击“Configs”选项卡
3,滚动屏幕,选择“Advanced hive-env”, 在hive-env template 字段 注释原来的“export HADOOP_CLIENT_OPTS="-Xmx${HADOOP_HEAPSIZE}m $HADOOP_CLIENT_OPTS"
修改如下:
#export HADOOP_CLIENT_OPTS="-Xmx${HADOOP_HEAPSIZE}m $HADOOP_CLIENT_OPTS"
export HADOOP_CLIENT_OPTS="-Xmx${HADOOP_HEAPSIZE}m -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/var/log/hive/gc.hiveserver2.log-`date +'%Y%m%d%H%M%S'` -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/var/log/hive -XX:+DisableExplicitGC -XX:+UseCompressedOops $HADOOP_CLIENT_OPTS"
修改完成后,保存设置,需要重新启动 Hive 才会使新的配置生效。
这样在 Hive Server所在的主机上,可以在/var/log/hive 目录找到相应的log 文件,如果,outofmemory error 发生,将会生成文件名为:java_pidxxxxx.hprof,xxxxx为java的进程id。
此文件会比较大,可以使用 JDK 自带的分析工具分析\jdk1.7.0_79\bin\jvisualvm.exe。
也可以使用,IBM HeapAnalyzer 分析:https://www.ibm.com/developerworks/community/groups/service/html/communityview?communityUuid=4544bafe-c7a2-455f-9d43-eb866ea60091