本文介紹HBase出現HMaster服務異常的解決方案。
具體報錯
HBase 2.3.4版本的HMaster一直重啟失敗,錯誤日志如下所示。
java.io.EOFException: Cannot seek after EOF
at org.apache.hadoop.hdfs.DFSInputStream.seek(DFSInputStream.java:1447)
at org.apache.hadoop.fs.FSDataInputStream.seek(FSDataInputStream.java:65)
at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initInternal(ProtobufLogReader.java:211)
at org.apache.hadoop.hbase.regionserver.wal.ProtobufLogReader.initReader(ProtobufLogReader.java:173)
問題原因
HMaster在啟動時遇到recovery的wal文件為空(即文件長度為0),出現了異常,并導致HMaster啟動失敗。該問題出現的概率較小。
對應社區的Issue:WAL replay should ignore 0-length files。
影響范圍
受影響的HBase版本為2.3.4,對應的EMR集群版本:
EMR-5.6.0之前版本
EMR-4.8.0至EMR-4.10.0版本(均包含)
解決方法
說明
替換前請備份好JAR文件。
下載hbase-server-2.3.4.jar,并替換HBase集群header節點上對應的JAR文件。
JAR文件在/usr/lib/hbase-current/lib/目錄下。
重啟HMaster。
在EMR控制臺HBase服務的狀態頁面,單擊HMaster操作列的重啟。
文檔內容是否對您有幫助?