簡體   English   中英

hadoop reducer上的JVM崩潰

[英]JVM crash on hadoop reducer

我在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崩潰,2)有時減速器的自動重試可以成功,3)一些減速器可以成功而不會失敗。

Hadoop版本是2.6.0,Java是Java8。 這不是一個新環境,我們在集群上有很多作業正在運行。

我的問題:

  1. 在紗線聚合日志並刪除文件夾之后,可以在任何地方找到hs_err_pid31718.log嗎? 還是有保留所有本地日志的設置,以便在按紗線聚合日志時可以檢查hs_err_pid31718.log?

  2. 縮小深潛范圍的常見步驟是什么? 由於jvm崩潰,我看不到代碼中的任何異常。 我已經嘗試了-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp這個args,但是在主機上沒有沒有通過reduce任務的堆。

感謝您的任何建議。

答案

  1. 使用-XX:ErrorFile=<your prefered location>/hs_err_pid<pid>.log將hs_error文件位置設置為您首選的位置。
  2. 崩潰是由於JDK錯誤JDK-6675699所致,該錯誤已在JDK9中修復,並且從JDK8更新74開始可以使用反向移植。

您正在使用JDK8更新72。請從此處升級到最新版本,以避免此崩潰。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM