【发布时间】:2017-07-11 14:56:22
【问题描述】:
我在hadoop上运行java代码,但是遇到这个错误:
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f2ffe7e1904, pid=31718, tid=139843231057664
#
# JRE version: Java(TM) SE Runtime Environment (8.0_72-b15) (build 1.8.0_72-b15)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (25.72-b15 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# V [libjvm.so+0x813904] PhaseIdealLoop::build_loop_late_post(Node*)+0x144
#
# Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /hadoop/nm-local-dir/usercache/ihradmin/appcache/application_1479451766852_3736/container_1479451766852_3736_01_000144/hs_err_pid31718.log
#
# Compiler replay data is saved as:
# /hadoop/nm-local-dir/usercache/ihradmin/appcache/application_1479451766852_3736/container_1479451766852_3736_01_000144/replay_pid31718.log
#
# If you would like to submit a bug report, please visit:
# http://bugreport.java.com/bugreport/crash.jsp
我去节点管理器的时候,从yarn.log-aggregation-enable is true开始的所有日志都汇总了,找不到日志hs_err_pid31718.log和replay_pid31718.log。
通常 1) JVM 在 reducer 几分钟后崩溃,2) 有时 reducer 的自动重试可以成功,3) 一些 reducer 可以成功而没有失败。
Hadoop版本是2.6.0,Java是Java8。这不是一个新环境,我们有很多作业在集群上运行。
我的问题:
在 yarn 聚合日志并删除文件夹后,我可以在任何地方找到 hs_err_pid31718.log 吗?或者是否有保留所有本地日志的设置,以便我可以在通过纱线聚合日志时检查 hs_err_pid31718.log?
缩小深潜范围的常用步骤是什么?由于 jvm 崩溃,我在代码中看不到任何异常。我已经尝试过
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp这个参数,但是在减少任务失败的主机上没有堆转储。
感谢您的任何建议。
【问题讨论】: