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

E-MapReduce:HMaster サービスで「EOF の後にシークできません」というエラーが報告された場合の対処方法

最終更新日:Jan 11, 2025

このトピックでは、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 サービスの起動時に、復元された WAL ファイルが空です。この問題は、ほとんどの場合発生しません。

オープンソースの HBase の問題の詳細:WAL 再生は長さ 0 のファイルを無視する必要があります

影響範囲

影響を受ける HBase のバージョンは 2.3.4 で、次の E-MapReduce(EMR)バージョンのクラスターが影響を受けます:

  • EMR V5.6.0 より前のマイナーバージョン

  • EMR V4.8.0 から EMR V4.10.0(両方を含む)

解決策

説明

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

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

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

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

    EMR コンソールの HBase サービスページの [ステータス] タブで、HMaster サービスを見つけ、[アクション] 列の [再起動] をクリックします。