Support Questions
Find answers, ask questions, and share your expertise
Announcements
Alert: The Cloudera Community will undergo maintenance on Saturday, August 17 at 12:00am PDT. See more info here.

Setting the NameNode port (8020) to listen outside of localhost

SOLVED Go to solution

Setting the NameNode port (8020) to listen outside of localhost

New Contributor

I have manually installed CDH4 on a machine according to the default configurations given in the Cloudera installation documentation.

 

http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/4.2.1/CDH4-Installation-Guide/CD...

 

I configured the machine to run in pseudo-distributed mode and the pseudo-cluster is working as expected when using the HDFS and MapReduce programs on the machine itself.

 

However, I have an application that is need of access to the NameNode port (8020). I am unable to make a connection to this port from an external machine despite having this port opened on the firewall. I found that the NameNode service is only listening on the localhost, thus rejecting requests from outside machines to communicate on this port.

 

$ sudo netstat -tulpn | grep :8020
tcp        0      0 127.0.0.1:8020              0.0.0.0:*                   LISTEN      16504/java

 

I want this service to listen to requests outside of the machine itself, just like I can communicate through port 50030 or 50070 on another machine. I have configured vi /etc/hadoop/conf.pseudo.mr1/core-site.xml to reference the machine name (hadoop) rather than localhost:

 

<property>
  <name>fs.default.name</name>
  <value>hdfs://hadoop:8020</value>
</property>


After restarting the NameNode service, I find that it is still only listening of 127.0.0.1. Is there any way to open to this port up for external usage?

1 ACCEPTED SOLUTION

Accepted Solutions

Re: Setting the NameNode port (8020) to listen outside of localhost

New Contributor

I found the solution. I had neglected to find the article detailing network configuration which specified that the /etc/hosts file should have the fully-qualified domain name listed, not just the machine name.

 

http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/4.2.1/CDH4-Installation-Guide/cd...

3 REPLIES 3

Re: Setting the NameNode port (8020) to listen outside of localhost

New Contributor

I found the solution. I had neglected to find the article detailing network configuration which specified that the /etc/hosts file should have the fully-qualified domain name listed, not just the machine name.

 

http://www.cloudera.com/content/cloudera-content/cloudera-docs/CDH4/4.2.1/CDH4-Installation-Guide/cd...

Re: Setting the NameNode port (8020) to listen outside of localhost

Master Collaborator

Thanks for closing the loop with us and posting back the solution, JakeZ

Re: Setting the NameNode port (8020) to listen outside of localhost

New Contributor

The solution is much Simpler

 

In the HDFS configuration in cloudera there is a property called

Bind NameNode to Wildcard Address. You just need to check the box and it will bind the service on 0.0.0.0

 

then restart hdfs service

 

[cloudera@localhost ~]$ sudo netstat -tulpn | grep :8020
tcp 0 0 0.0.0.0:8020 0.0.0.0:* LISTEN 29966/java