web-dev-qa-db-fra.com

Le zookeeper d'erreur Hbase existe après trois départs à la retraite

J'utilise le mode autonome HBASE 0.94.8 dans Ubuntu. Cela fonctionne bien, je suis capable de faire toutes les opérations dans Hbase-Shell. Mais après que je me suis connecté de mon système, cela donne l'erreur suivante 

15/07/28 15:10:30 ERROR zookeeper.RecoverableZooKeeper: ZooKeeper exists failed after 3 retries
15/07/28 15:10:30 WARN zookeeper.ZKUtil: hconnection-0x14ed40513350009 Unable to set watcher on znode (/hbase)
org.Apache.zookeeper.KeeperException$ConnectionLossException: KeeperErrorCode = ConnectionLoss for /hbase
    at org.Apache.zookeeper.KeeperException.create(KeeperException.Java:99)
    at org.Apache.zookeeper.KeeperException.create(KeeperException.Java:51)
    at org.Apache.zookeeper.ZooKeeper.exists(ZooKeeper.Java:1041)
    at org.Apache.hadoop.hbase.zookeeper.RecoverableZooKeeper.exists(RecoverableZooKeeper.Java:172)
    at org.Apache.hadoop.hbase.zookeeper.ZKUtil.checkExists(ZKUtil.Java:450)
    at org.Apache.hadoop.hbase.zookeeper.ZooKeeperNodeTracker.checkIfBaseNodeAvailable(ZooKeeperNodeTracker.Java:208)
    at org.Apache.hadoop.hbase.zookeeper.RootRegionTracker.waitRootRegionLocation(RootRegionTracker.Java:77)
    at org.Apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.Java:885)
    at org.Apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.Java:998)
    at org.Apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.Java:896)
    at org.Apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegionInMeta(HConnectionManager.Java:998)
    at org.Apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.Java:900)
    at org.Apache.hadoop.hbase.client.HConnectionManager$HConnectionImplementation.locateRegion(HConnectionManager.Java:857)

Oui, bien sûr, j'ai beaucoup cherché. J'ai trouvé des informations ZooKeeper existe en échec après 3 tentatives . Peut-être que cette erreur est due au fait que zookeeper est arrêté. Mais je ne sais pas comment le redémarrer. J'ai essayé de recommencer Hbase et thrift mais le problème persiste.

Cette commande ps axww | grep QuorumPeerMain me donne la sortie suivante:

 6162 pts/2    S+     0:00 grep --color=auto QuorumPeerMain

Hbase commence à fonctionner si je redémarre mon système. Mais je veux une solution adéquate.


Solution temporaire

avec la commande suivante je grep ce processus de HBASE:

ps -fe grep | hbase

puis tuez tout le processus de HBASE:

kill -9 4555//assuming 4555 is process id of hbase

Puis redémarré hbase avec Sudo et Thrift et il commence à fonctionner, mais je souhaite une solution permanente. Parce que si j'utilise HBASE sur le serveur (ne signifie pas une machine locale), je ne peux pas redémarrer HBASE à chaque fois.

9
Manwal

Issue

Erreur: le zookeeper avec erreur Hbase existe après 3 abandons Indique clairement que le quorum du zookeeper n'est pas en cours d'exécution - la cause la plus probable peut être une incohérence avec votre paramètre zookeeper.quorum dans conf/hbase-site.xml, le minimum doit être:

<configuration>
  <property>
    <name>hbase.rootdir</name>
    <value>file:///home/testuser/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/home/testuser/zookeeper</value>
  </property>
</configuration>

Dans la section suivante, nous expliquons succinctement pourquoi un gardien de zoo est nécessaire et comment vérifier s'il fonctionne.


Un aperçu :

Une présomption de votre texte (configuration autonome) - vous mélangez les choses. Zookeeper en mots simples gère HBase, et est une condition indispensable. 

Par défaut, HBase lui-même gère la configuration de zookeeper, start-stop (bien que l'on puisse en changer) - pour vérifier dans le fichier conf/hbase-evn.sh (dans votre répertoire hbase), il doit y avoir une ligne: 

export HBASE_MANAGES_ZK=true

Indique à HBase si elle doit ou non gérer sa propre instance de Zookeeper. S'il est défini sur false, modifiez-le pour true.

Maintenant pour la vérification il y a une commande utile (oubliez la ps puis grep):

$ jps

la commande répertorie tous les processus Java (HBase est elle-même une application Java) sur la machine, c’est-à-dire que la sortie probable doit être (pour une configuration HBase autonome minimale):

62019 Jps
61098 HMaster        
61233 HRegionServer     
61003 HQuorumPeer

Ne tuez pas simplement le processus HBase, utilisez plutôt l'utilitaire start-stop:

$ ./bin/stop-hbase.sh

effectuez les modifications nécessaires et recommencez:

$ ./bin/start-hbase.sh

P.S. J'aurais peut-être mal interprété votre question (complètement), faites-le-moi savoir dans les commentaires que je vous recontacterai et trouvera la bonne solution - pour les visiteurs SO à venir.

4
Nabeel Ahmed

Lorsque vous consultez les fichiers journaux, vous constaterez que zookeeper est incapable de se connecter avec un port. Par exemple, 543210. Cela signifie simplement que Vous avez déjà installé Hadoop sur votre ordinateur. Hbase essaie donc de rechercher le gardien de zoo de l'installation précédente de hadoop. Veuillez renommer votre configuration hadoop existante ou supprimer complètement hadoop de votre système. (Mais notez que le gardien de zoo semble laisser les choses même après une suppression.)

  • Renommer le dossier d'installation hadoop
  • Supprimer l'entrée du fichier .bashrc
  • Redémarrer l'ordinateur
3
shubham bhindwal

Il semble que le problème ne soit pas lié à hbase ou zookeeper. C'est un problème de réglage du système.

J'ai le même problème après ma mise à jour Mac OS X.

Il s'est avéré que les paramètres DNS ont été modifiés par la mise à jour. J'ai vu cela dans les journaux de base:

2017-06-09 11:40:18,454 ERROR [main] master.HMasterCommandLine: Master exiting
Java.lang.RuntimeException: Failed construction of Master: class org.Apache.hadoop.hbase.master.HMasterCommandLine$LocalHMaster
    at org.Apache.hadoop.hbase.util.JVMClusterUtil.createMasterThread(JVMClusterUtil.Java:143)
[SKIP]
    at org.Apache.hadoop.hbase.master.HMaster.main(HMaster.Java:2432)
Caused by: Java.lang.NullPointerException
    at org.Apache.hadoop.net.DNS.reverseDns(DNS.Java:92)

Après avoir supprimé les paramètres DNS dans hbase-site.xml, le problème s'est dissipé:

  <!--property>
    <name>hbase.zookeeper.dns.interface</name>
    <value>lo0</value>
  </property>
  <property>
    <name>hbase.regionserver.dns.interface</name>
    <value>lo0</value>
  </property>
  <property>
    <name>hbase.master.dns.interface</name>
    <value>lo0</value>
  </property-->
2
Dmitry Petrov

J'ai presque la même erreur "ZooKeeper existe a échoué après 4 tentatives". Cela a été causé par l'exécution de ./start-hbase.sh sans avoir l'autorisation de se connecter au port 2181. La solution s'est avérée très simple:

Sudo ./start-hbase.sh

J'ai utilisé la même configuration de hbase-site.xml que dans le message de Nabeel Ahmed.

0
APW

Si son gardien de zoo commence seulement, this devrait vous aider. J'espère que vous savez que zookeeper devrait être opérationnel avant de démarrer hbase. 

0
Ramzy

Le mien travaille avec la commande Sudo

hbase/bin$Sudo ./start-habase.sh
0
y durga prasad