Toute commande pour être actif namenode pour nameservice dans hadoop?
La commande:
hdfs haadmin -getServiceState machine-98
Fonctionne uniquement si vous connaissez le nom de la machine. Est-il une commande comme:
hdfs haadmin -getServiceState <nameservice>
qui peut vous indiquer l'IP/nom d'hôte de la active namenode?
- +1: Bonne question. La réponse est
no
très probablement. Même sans HA, il n'y a pas de commande pour afficher le namenode du hostname/ip ASFAIK.hdfs dfsadmin -report
affiche uniquement les datanodes. Il existe des solutions de contournement cependant.
Vous devez vous connecter pour publier un commentaire.
D'imprimer la namenodes utilisez cette commande:
Imprimer le secondaire namenodes:
D'imprimer la sauvegarde namenodes:
Remarque: Ces commandes ont été testés en utilisant Hadoop 2.4.0.
Mise à jour 10-31-2014:
Ici est un script python qui va lire le NameNodes impliqués dans Hadoop HA à partir du fichier de configuration et de déterminer lequel d'entre eux est actif à l'aide de la hdfs haadmin de commande. Ce script n'est pas complètement testé comme je n'ai pas HA configuré. Testé uniquement de l'analyse à l'aide d'un exemple de fichier basé sur Hadoop HA de la Documentation. N'hésitez pas à utiliser et de modifier si nécessaire.
*
après l'namenode nom sera suffisant.Trouvé ceci:
https://gist.github.com/cnauroth/7ff52e9f80e7d856ddb3
Cela fonctionne hors de la boîte sur mon CDH5 namenodes, bien que je ne suis pas sûr d'autres distributions hadoop aura http://namenode:50070/jmx disponible - si non, je pense qu'il peut être ajouté par le déploiement de Jolokia.
Exemple:
Donc, en lançant une requête http à chaque namenode (ce devrait être rapide), on peut comprendre que l'on est celui qui est actif.
Il est également intéressant de noter que si vous parlez WebHDFS API REST inactif namenode, vous obtiendrez un 403 Forbidden et le JSON suivants:
Vous pouvez le faire en bash avec hdfs cli appels, trop. Avec l'inconvénient que cela prend un peu plus de temps car c'est un peu d'appels à l'API dans la succession, mais cela peut être préférable à l'utilisation d'un script python pour certains.
Cela a été testé avec Hadoop 2.6.0
Après la lecture de toutes les réponses aucun ne semble combiner les trois étapes de:
cluster admin privs).
Solution ci-dessous combine
hdfs getconf
appels et service JMX appel à l'état d'un noeud.À partir de l'api java, vous pouvez utiliser
HAUtil.getAddressOfActive(fileSystem)
.Dans une Haute Disponibilité de votre cluster Hadoop, il y aura 2 namenodes - un actif et un mode de veille.
Pour trouver l'actif namenode, nous pouvons essayer d'exécuter le test de hdfs commande sur chacun des namenodes et de trouver le nom de la matière active nœud correspondant à l'exécution réussie.
Ci-dessous la commande s'exécute correctement si le nom de nœud est actif et échoue si c'est un nœud en attente.
Script Unix
Vous pouvez faire une commande curl pour trouver de l'Actif et du secondaire Namenode
par exemple
Ce qui concerne