すべてのプロダクト
Search
ドキュメントセンター

E-MapReduce:HMaster サービスが "Cannot seek after EOF" エラーで失敗する

最終更新日:Jul 18, 2026

HBase 2.3.4 における HBase HMaster の起動失敗を、"Cannot seek after EOF" エラーの解決により修正します。

症状

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 サービスは、リカバリプロセス中に空(0 バイト)の write-ahead log(WAL)ファイルに遭遇したため、起動に失敗します。この問題は稀に発生します。

関連するコミュニティの課題:WAL replay should ignore 0-length files。

影響を受けるバージョン

この問題は、以下の EMR バージョンで実行されている EMR クラスター上の HBase バージョン 2.3.4 に影響します。

  • EMR-5.6.0 より前の EMR バージョン

  • EMR-4.8.0 ~ EMR-4.10.0(両端を含む)

解決方法

説明

JAR ファイルを置き換える前に、バックアップを作成してください。

  1. hbase-server-2.3.4.jar をダウンロードし、HBase クラスターのマスターノード上の対応する JAR ファイルを置き換えます。

    JAR ファイルは /usr/lib/hbase-current/lib/ ディレクトリにあります。

  2. HMaster サービスを再起動します。

    EMR コンソールで、HBase サービスのStatusページに移動します。HMaster コンポーネントの行で、操作列の再起動をクリックします。