Hbase: Comment spécifier le nom d'hôte pour Hbase maître
J'ai du mal à configurer un Hbase cluster distribué avec 2 nœuds, l'un est ma machine et l'un est la machine virtuelle, à l'aide de la "host-only" Adaptateur dans VirtualBox.
Mon problème est que la région serveur (à partir de machines virtuelles) ne peut pas se connecter à Hbase master en cours d'exécution sur la machine hôte. Bien que dans Hbase shell que je puisse les énumérer, create table, ..., en regionserver sur des machines virtuelles ("esclave"), le journal de toujours montrer
org.apache.hadoop.hbase.regionserver.HRegionServer: Unable to connect to master. Retrying. Error was:
java.net.ConnectException: Connection refused
Précédemment, j'ai réussi l'installation Hadoop, HDFS et MapReduce sur ce cluster avec 2 nœuds nommés en tant que "maître" et "esclave", "maître" en tant que nœud maître et à la fois de "maître" et "esclave" travailler comme des esclaves des nœuds, ces noms liés à la vboxnet0 interface de VirtualBox (les noms d'hôtes dans /etc/hostname est différent). Je'l'de spécifier l'esclave.de l'hôte.nom de la propriété" pour chaque nœud comme "maître" et "esclave".
Il semble que le capitaine Hbase sur le "maître" toujours exécuter avec "localhost" nom d'hôte, de l'esclave de la machine, je ne peux pas telnet pour la hbase maître avec le "maître" nom d'hôte. Donc, est-il possible de spécifier le nom d'hôte utiliser pour Hbase maître en tant que "maître", j'ai essayé de préciser certaines propriétés sur les serveurs DNS de l'interface pour ZooKeeper, le Maître, RegionServer interne et l'interface entre le maître et de l'esclave, mais il ne fonctionne toujours pas.
/etc/hosts pour une fois que quelque chose comme
127.0.0.1 localhost
127.0.0.1 ubuntu.mymachine
# For Hadoop
192.168.56.1 master
192.168.56.101 slave
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
OriginalL'auteur Arcobaleno | 2012-03-08
Vous devez vous connecter pour publier un commentaire.
La réponse de @l'Infini semble appartenir à la version ~0.9.4.
Pour la version 1.1.4.
selon le code source de
la configuration devrait être:
Après la définition de cette valeur, de la région les serveurs sont en mesure de se connecter à hbase maître;
cependant, dans mon environnement, la région serveur se sont plaints:
Le problème a disparu après que j'ai installé oracle JDK 8, au lieu d'ouvrir-jdk-7 dans tous mes nœuds.
Donc, en conclusion, voici ma solution:
utiliser le nom dns du serveur au lieu de /etc/hosts, comme hbase est très
pointilleux sur le nom d'hôte et semble nécessite DNS de recherche ainsi que l'inverse
DNS lookup.
de mise à niveau jdk de oracle 8
utiliser l'élément de réglage mentionné
ci-dessus.
hbase.master.hostname
fonctionne! Maintenant mon serveur maître connaissait son nom.Un grand merci! Puis-je répondre à votre deuxième problème, et j'ai déjà utiliser l'oracle jdk8!"Invalid argument" a été résolu par la mise en 'hbase.regionserver.nom d'hôte " dans hbase-site.xml une autre réponse mentionné
OriginalL'auteur huang shuming
Mon fichier host est comme
127.0.0.1 localhost
192.168.2.118 shashwat.machine.com shashwat
faire de votre fichier hosts comme suit:
127.0.0.1 localhost
Pour Hadoop
192.168.56.1 maître
192.168.56.101 esclave
et dans hbase conf mettre entrées suivantes :
Si vous utilisez localhost n'importe où de le supprimer et de le remplacer par "maître" qui est le nom de namenode dans votre hostfile....
un morething vous pouvez faire
sudo gedit /etc/hostname
cela va ouvrir le fichier hostname par défaut d'ubuntu sera là afin de le rendre maître. et redémarrez votre système.
Pour hbase spécifier dans "regionserver" fichier à l'intérieur de conf dir mettre ces entrées
maître
esclave
et redémarrer.tout.
Utiliser le nom de domaine réel ou spécifique à votre serveur DNS
HBase fonctionnera sous Linux pas dans windows
OriginalL'auteur Infinity
Il y a deux choses que fixer cette classe de problème pour moi:
1) Enlever tous les "localhost" les noms n'ont 127.0.0.1 pointant vers le nom de la hmaster nœud.
2) exécutez "nom d'hôte X" sur votre hbase nœud maître, assurez-vous que le nom d'hôte correspond à ce qui est dans /etc/hosts.
N'étant pas un réseau d'experts, je ne peux pas dire pourquoi c'est important, mais ça l'est 🙂
OriginalL'auteur jayunit100
La plupart du temps, l'erreur provient de la Gardienne qui enverrait un mauvais nom d'hôte.
Vous pouvez vérifier ce que Zookeeper envoie comme HBase maître de l'hôte:
Trouver Zookeeper bin:
Cela devrait vous donner le capitaine HBase IP de cette réponse, Gardienne d'animaux, de sorte que cette adresse IP doit être accessible.
OriginalL'auteur Thomas Decaux