voglio accedere HDFS con nomi completi quali:Trova numero di porta dove HDFS è in ascolto
hadoop fs -ls hdfs://machine-name:8020/user
potrei anche semplicemente accedere HDFS con
hadoop fs -ls /user
Tuttavia, vi scrivo casi di test che dovrebbe funzionare su diverse distribuzioni (HDP, Cloudera, MapR ... ecc.) che comporta l'accesso ai file hdfs con nomi qualificati.
Capisco che hdfs://machine-name:8020
sia definito in core-site.xml come fs.default.name
. Ma questo sembra essere diverso su diverse distribuzioni. Ad esempio, hdfs è maprfs su MapR. IBM BigInsights non ha nemmeno core-site.xml
in $HADOOP_HOME/conf
.
Non sembra esserci un modo in cui hadoop mi dice cosa è definito in fs.default.name
con le sue opzioni da riga di comando.
Come è possibile ottenere il valore definito in fs.default.name
in modo affidabile dalla riga di comando?
Il test sarà sempre in esecuzione su namenode, quindi il nome del computer è facile. Ma ottenere il numero di porta (8020) è un po 'difficile. Ho provato lsof, netstat .. ma non sono riuscito a trovare un modo affidabile.
l'utilità della riga di comando "HDFS" non è disponibile nella versione Hadoop prima? – ernesto
comando hdfs introdotto a hadoop da 2.X, questo comando non è presente in 1.X, puoi provare la seconda opzione in questo caso – sachin
Usa hadoop conf -key fs.default.name per versioni 2.x pre. –