全部產品
Search
文件中心

E-MapReduce:HMaster服務異常提示Cannot seek after EOF

更新時間:Jul 01, 2024

本文介紹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檔案。

  1. 下載hbase-server-2.3.4.jar,並替換HBase叢集header節點上對應的JAR檔案。

    JAR檔案在/usr/lib/hbase-current/lib/目錄下。

  2. 重啟HMaster。

    在EMR控制台HBase服務的狀態頁面,單擊HMaster操作列的重啟