get "ERREUR: Impossible d'obtenir l'adresse principale de ZooKeeper; znode data == null "lors de l'utilisation du shell Hbase
J'ai installé Hadoop2.2.0 et Hbase0.98.0 et voici ce que je fais :
$ ./bin/start-hbase.sh
$ ./bin/hbase shell
2.0.0-p353 :001 > list
ensuite, j'ai obtenu ceci:
ERROR: Can't get master address from ZooKeeper; znode data == null
Pourquoi j'obtiens cette erreur ? Une autre question:
ai-je besoin pour exécuter ./sbin/start-dfs.sh
et ./sbin/start-yarn.sh
avant que je ne base ?
Aussi, ce qui sont utilisés ./sbin/start-dfs.sh
et ./sbin/start-yarn.sh
?
Voici certains de mes conf doc :
hbase-sites.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://127.0.0.1:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/Users/apple/Documents/tools/hbase-tmpdir/hbase-data</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/Users/apple/Documents/tools/hbase-zookeeper/zookeeper</value>
</property>
</configuration>
core-sites.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
<description>The name of the default file system.</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/Users/micmiu/tmp/hadoop</value>
<description>A base for other temporary directories.</description>
</property>
<property>
<name>io.native.lib.available</name>
<value>false</value>
</property>
</configuration>
yarn-sites.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
source d'informationauteur Rickie Lau
Vous devez vous connecter pour publier un commentaire.
Si vous voulez juste pour exécuter HBase sans entrer dans Zookeeper de gestion autonome, pour HBase, puis retirez toutes les
property
pâtés de maisons dehbase-site.xml
à l'exception de la propriété bloc nomméhbase.rootdir
.Maintenant exécuter
/bin/start-hbase.sh
. HBase est livré avec son propre Zookeeper, qui est lancé lorsque vous exécutez/bin/start-hbase.sh
qui suffira si vous êtes en essayant de contourner les choses pour la première fois. Plus tard, vous pouvez mettre le mode distribué des configurations pour Zookeeper.Vous n'aurez qu'à exécuter
/sbin/start-dfs.sh
pour l'exécution de HBase, car la valeur dehbase.rootdir
est fixé àhdfs://127.0.0.1:9000/hbase
dans votrehbase-site.xml
. Si vous le remplacez par un emplacement sur le système de fichiers local à l'aide defile:///some_location_on_local_filesystem
alors vous n'avez même pas besoin de courir/sbin/start-dfs.sh
.hdfs://127.0.0.1:9000/hbase
dit que c'est un endroit sur HDFS et/sbin/start-dfs.sh
commence namenode et datanode qui fournit des sous-jacents de l'API pour accéder au système de fichiers HDFS. Pour connaître Fil, veuillez jeter un oeil à http://hadoop.apache.org/docs/r2.3.0/hadoop-yarn/hadoop-yarn-site/YARN.html.Cela pourrait également se produire si la machine virtuelle ou de la machine hôte est mis pour dormir ,Zookeeper va pas rester vivre.
Le redémarrage de la VM devrait résoudre le problème.
Vous avez besoin pour commencer zookeeper, puis exécutez Hbase-shell
et vous voudrez peut-être vérifier cette propriété dans hbase-env.sh
Reportez-vous à Source - Zookeeper
J'ai eu exactement la même erreur. Le Linux pare-feu était blocage de la connectivité. On peut tester les ports via telnet. Une solution rapide est de désactiver le pare-feu et voir si cela résout-il:
Complètement désactiver le pare-feu sur tous les nœuds. Remarque: cette commande ne survivra pas à un redémarrage de votre machine.
Long terme correctif est que vous devez configurer le pare-feu pour autoriser la hbase ports.
Note, votre version de hbase peut utiliser des ports différents:
https://issues.apache.org/jira/browse/HBASE-10123
Une solution rapide pourrait être de relancer la hbase:
La sortie de Hbase coquille est d'un très haut niveau que beaucoup de mauvaise configuration serait l'origine de ce message. Pour vous aider à déboguer, il serait beaucoup mieux de regarder dans le hbase journal dans
de trouver la cause racine du problème.
J'ai eu le même problème aussi. Pour moi, ma cause est due à hadoop-kms avoir un conflit avec un autre numéro de port avec mes hbase-maître. Deux d'entre eux sont en utilisant le port 16000 donc mon HMaster n'ai même pas commencé quand j'invoque hbase shell. Après j'ai corrigé ça, mon hbase travaillé.
De nouveau, kms conflit de port peut-être pas votre cause. Suggère fortement de regarder dans /var/log/hbase pour trouver la cause racine.