Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Find port number where HDFS is listening

I want to access hdfs with fully qualified names such as :

hadoop fs -ls hdfs://machine-name:8020/user 

I could also simply access hdfs with

hadoop fs -ls /user 

However, I am writing test cases that should work on different distributions(HDP, Cloudera, MapR...etc) which involves accessing hdfs files with qualified names.

I understand that hdfs://machine-name:8020 is defined in core-site.xml as fs.default.name. But this seems to be different on different distributions. For example, hdfs is maprfs on MapR. IBM BigInsights don't even have core-site.xml in $HADOOP_HOME/conf.

There doesn't seem to a way hadoop tells me what's defined in fs.default.name with it's command line options.

How can I get the value defined in fs.default.name reliably from command line?

The test will always be running on namenode, so machine name is easy. But getting the port number(8020) is a bit difficult. I tried lsof, netstat.. but still couldn't find a reliable way.

like image 343
ernesto Avatar asked Oct 06 '14 13:10

ernesto


People also ask

How do I find my HDFS port?

You can open this address in your browser and check the namenode information. The default address of namenode server is hdfs://localhost:8020/. You can connect to it to access HDFS by HDFS api.

What is port in hadoop?

To access Hadoop WEB UI , you need to type http://localhost:50075/ though your core-site. xml is having http://localhost:9000 because it is for hdfs requests and 50075 is the default port for WEB UI.

Where is my HDFS path?

You can look for the following stanza in /etc/hadoop/conf/hdfs-site. xml (this KVP can also be found in Ambari; Services > HDFS > Configs > Advanced > Advanced hdfs-site > dfs.


2 Answers

Below command available in Apache hadoop 2.7.0 onwards, this can be used for getting the values for the hadoop configuration properties. fs.default.name is deprecated in hadoop 2.0, fs.defaultFS is the updated value. Not sure whether this will work incase of maprfs.

hdfs getconf -confKey fs.defaultFS  # ( new property )  

or

hdfs getconf -confKey fs.default.name    # ( old property )  

Not sure whether there is any command line utilities available for retrieving configuration properties values in Mapr or hadoop 0.20 hadoop versions. In case of this situation you better try the same in Java for retrieving the value corresponding to a configuration property.

Configuration hadoop conf = Configuration.getConf(); System.out.println(conf.get("fs.default.name")); 
like image 147
SachinJ Avatar answered Sep 25 '22 12:09

SachinJ


fs.default.name is deprecated.

use : hdfs getconf -confKey fs.defaultFS

like image 31
vijayinani Avatar answered Sep 21 '22 12:09

vijayinani