Hbase erreur zookeeper existe en échec après 3 retiries
j'utilise le mode autonome HBASE 0.94.8 en Ubuntu. Je suis capable de faire toutes les opérations dans Hbase-shell. Mais après je me suis connecté de mon système son donnant 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, j'ai beaucoup cherché. J'ai trouvé quelques informations ZooKeeper existe échoué après 3 tentatives . Peut-être cette erreur est parce que zookeeper est arrêté. Mais je ne sais pas à redémarrer à nouveau. J'ai essayé de recommencer Hbase
et thrift
mais c'est toujours la question.
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 bonne solution.
solution temporaire
avec la commande suivante je grep ce processus de HBASE:
ps -fe grep | hbase
et puis tuer 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 commencer à travailler, mais je veux une solution permanente. Parce que si J'utilise HBASE dans server (c'est-à-dire pas une machine locale), Je ne peux pas redémarrer HBASE à chaque fois.
6 réponses
Problème :
Hbase erreur zookeeper existe en échec après 3 retiries
indique clairement que quorum de gardien de zoo n'est pas en cours d'exécution-la cause la plus probable peut être une certaine incohérence avec votre gardien de zoo.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, il est brièvement mentionné pourquoi zookeeper est nécessaire et comment peut-on vérifier si elle est en cours d'exécution.
un aperçu :
pré-supposition à partir de votre texte (configuration autonome) - vous mélangez les choses. Zookeeper gère en termes simples HBase, et est une exigence incontournable.
par défaut HBase lui-même gère la configuration de zokeeper, start-stop (bien qu'on puisse changer) - pour vérifier, regardez dans le fichier conf/hbase-evn.sh
(dans votre répertoire hbase) il doit y avoir une ligne:
export HBASE_MANAGES_ZK=true
indique essentiellement à HBase s'il doit gérer sa propre instance de gardien de Zoo ou non. Dans le cas où il est défini à false
, éditer à true
.
maintenant pour la vérification il y a une commande utile (oubliez le ps
et puis grep
):
$ jps
la commande listera tous les processus java (HBase est lui-même une application Java) sur la machine, c'est-à-dire que la sortie probable doit être (pour un minimum
62019 Jps
61098 HMaster
61233 HRegionServer
61003 HQuorumPeer
Ne tuez pas seulement le processus HBase, utilisez plutôt l'utilitaire start-stop:
$ ./bin/stop-hbase.sh
faire les changements nécessaires et recommencer:
$ ./bin/start-hbase.sh
P.S. j'aurais pu mal interpréter votre question (complètement), faites - moi savoir dans les commentaires je vais revenir à vous et obtenir la bonne solution-pour les visiteurs SO à venir.
lorsque vous regardez dans les fichiers journaux, vous constaterez que zookeeper est incapable de se connecter avec un port. Par exemple, 543210
. Cela signifie simplement qu'il
vous avez déjà installé Hadoop sur votre machine, donc hbase essaie de trouver le gardien de l'installation hadoop précédente. Veuillez renommer votre configuration hadoop existante ou supprimer complètement hadoop de votre système. (Mais notez que zookeeper semble laisser les choses autour, même après une suppression.)
- Rename dossier d'installation hadoop
- Supprimer l'entrée .bashrc fichier
- redémarrer l'ordinateur
il semble que la question n'est pas liée à hbase
ou zookeeper
. C'est une question 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 que dans les journaux de hbase:
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 suppression des paramètres DNS dans hbase-site.xml
, la question n'a pas été abordée:
<!--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-->
j'ai presque la même erreur "ZooKeeper existe échoué après 4 tentatives". Ça a été causé par la course.start-hbase.sh sans avoir les permissions 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 comme il l'est dans Nabeel Ahmed.
Mine travaille avec sudo command
hbase/bin$sudo ./start-habase.sh