jvm崩溃

rt4zxlrg  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(533)

我正在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\u err\u pid31718.log和replay\u pid31718.log。
通常1)reducer运行几分钟后jvm崩溃,2)reducer的自动重试有时可以成功,3)一些reducer可以成功而不失败。
hadoop版本是2.6.0,java是java8。这不是一个新的环境,我们有很多作业在集群上运行。
我的问题:
我可以在日志和删除文件夹后的任何位置找到hs\u err\u pid31718.log吗?或者是否有一个设置来保存所有本地日志,以便在按Yarn聚合日志时检查hs\u err\u pid31718.log?
缩小深潜范围的常见步骤是什么?由于jvm崩溃,我在代码中看不到任何异常。我试过了 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp 此参数无效,但没有堆转储到无法执行reduce任务的主机上。
谢谢你的建议。

6jjcrrmo

6jjcrrmo1#

答案
使用 -XX:ErrorFile=<your prefered location>/hs_err_pid<pid>.log 将hs\u错误文件位置设置为首选位置。
崩溃是由于jdk错误jdk-6675699这已经在jdk9中修复,并且在jdk8更新74以后的版本中提供了backport。
您正在使用jdk8更新72。请从这里升级到最新版本以避免此崩溃。

相关问题