Trouver le numéro de port HDFS est à l'écoute
Je veux accéder à hdfs avec des noms pleinement qualifiés tels que :
hadoop fs -ls hdfs://machine-name:8020/user
Je pourrais aussi simplement l'accès hdfs avec
hadoop fs -ls /user
Cependant, je suis en train d'écrire des cas de test qui doit travailler sur les différentes distributions(HDP, Cloudera, MapR, etc...) ce qui implique l'accès hdfs les fichiers avec les noms qualifiés.
Je comprends que hdfs://machine-name:8020
est défini dans core-site.xml comme fs.default.name
. Mais ce qui semble être différents sur les différentes distributions. Par exemple, hdfs est maprfs sur MapR. IBM BigInsights n'ont même pas de core-site.xml
dans $HADOOP_HOME/conf
.
Il ne semble pas une façon hadoop me dit ce qui est défini dans fs.default.name
avec ses options de ligne de commande.
Comment puis-je obtenir la valeur définie dans fs.default.name
de façon fiable à partir de la ligne de commande?
Le test sera toujours en cours d'exécution sur namenode, de sorte que le nom de la machine est facile. Mais pour obtenir le numéro de port(8020) est un peu difficile. J'ai essayé de lsof, netstat.. mais ne pouvait toujours pas trouver une méthode fiable.
Vous devez vous connecter pour publier un commentaire.
Commande ci-dessous disponible dans Apache hadoop 2.7.0-delà, cela peut être utilisé pour obtenir les valeurs pour les hadoop propriétés de configuration. fs.par défaut.le nom est obsolète dans hadoop 2.0, fs.defaultFS est la valeur mise à jour. Pas sûr que cela va fonctionner en cas de maprfs.
ou
Pas sûr s'il existe des utilitaires de ligne de commande disponibles pour récupérer les propriétés de configuration de valeurs dans Mapr ou hadoop 0.20 versions hadoop. Dans le cas de cette situation, vous devriez essayer la même chose en Java pour récupérer la valeur correspondant à une propriété de configuration.
fs.par défaut.le nom est obsolète.
utilisation :
hdfs getconf -confKey fs.defaultFS
J'ai rencontré cette réponse quand j'ai été à la recherche pour HDFS URI. Généralement c'est une URL pointant vers le namenode. Alors que
hdfs getconf -confKey fs.defaultFS
me met le nom de la nameservice mais il ne va pas m'aider à la construction de la HDFS URI.J'ai essayé la commande ci-dessous pour obtenir une liste des namenodes au lieu
Cela m'a donné une liste de tous les namenodes, primaire, premier, suivi par le secondaire. Après que la construction de la HDFS URI était simple
vous pouvez utiliser
Oui, hdfs getconf -namenodes va afficher la liste de namenodes.