このトピックでは、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 ファイルを置き換える前にバックアップしてください。
hbase-server-2.3.4.jar ファイルをダウンロードし、HBase クラスターのマスターノードにある JAR ファイルをダウンロードしたファイルに置き換えます。
JAR ファイルは /usr/lib/hbase-current/lib/ ディレクトリにあります。
HMaster サービスを再起動します。
EMR コンソールの HBase サービスページの [ステータス] タブで、HMaster サービスを見つけ、[アクション] 列の [再起動] をクリックします。