Tous les produits
Search
Centre de documentation

E-MapReduce:Échec du service HMaster avec l'erreur « Cannot seek after EOF »

Dernière mise à jour :Aug 09, 2026

Résolvez les échecs de démarrage d'HMaster HBase causés par l'erreur « Cannot seek after EOF » dans HBase 2.3.4.

Symptômes

HMaster pour HBase 2.3.4 ne parvient pas à redémarrer et affiche l'erreur suivante dans les journaux :

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)

Cause

Le service HMaster ne démarre pas car il rencontre un fichier WAL (write-ahead log) vide (0 octet) lors de sa récupération. Ce problème est rare.

Problème connexe dans la communauté : WAL replay should ignore 0-length files.

Versions concernées

Ce problème affecte HBase version 2.3.4 sur les clusters EMR exécutant les versions EMR suivantes :

  • Versions EMR antérieures à EMR-5.6.0

  • EMR-4.8.0 à EMR-4.10.0 (incluses)

Résolution

Remarque

Sauvegardez le fichier JAR avant de le remplacer.

  1. Téléchargez hbase-server-2.3.4.jar et remplacez le fichier JAR correspondant sur le nœud maître du cluster HBase.

    Le fichier JAR se trouve dans le répertoire /usr/lib/hbase-current/lib/.

  2. Redémarrez le service HMaster.

    Dans la console EMR, accédez à la page Status du service HBase. Sur la ligne du composant HMaster, cliquez sur Restart dans la colonne Actions.