Does hadoop "cache" the server names anywhere? Because I changed to
using DNS for name resolution, but when I go to the nodes view, it is
trying to view with the old name. And I changed the hadoop-site.xml
file so that it no longer has any of those values.
Any help would be appreciated.
Thank you,
-John
On Jun 9, 2009, at 9:24 PM, John Martyniak wrote:
So I setup a dns server that is for the internal network. changed
all of the names to duey.local, and created a master zone for .local
on the DNS. Put the domains server as the first one in /etc/
resolv.conf file, added it to the interface. I changed the hostname
of the machine that it is running on from duey.xxxx.com to
duey.local. Checked that the dns resolves, and it does. Ran
nslookup and returns the name of the machine given the ip address.
changed all of the names from the IP Addresses to duey.local, in my
hadoop-site.xml, changed the names in the masters and slaves files.
Deleted all of the logs, deleted the /tmp directory stuff.
Then restarted hadoop. And much to my surprise.....it still didn't
work.
I really thought that this would work as it seems to be the
consensus that the issue is the resolution of the name.
Any other thoughts would be greatly appreciated.
-John
On Jun 9, 2009, at 3:17 PM, Raghu Angadi wrote:
I still need to go through the whole thread. but we feel your pain.
First, please try setting fs.default.name to namenode internal ip
on the datanodes. This should make NN to attach internal ip so the
datanodes (assuming your routing is correct). NameNode webUI should
list internal ips for datanode. You might have to temporarily
change NameNode code to listen on 0.0.0.0.
That said, The issues you are facing are pretty unfortunate. As
Steve mentioned Hadoop is all confused about hostname/ip and there
is unecessary reliance on hostname and reverse DNS look ups in many
many places.
At least fairly straight fwd set ups with multiple NICs should be
handled well.
dfs.datanode.dns.interface should work like you expected (but not
very surprised it didn't).
Another thing you could try is setting dfs.datanode.address to the
internal ip address (this might already be discussed in the
thread). This should at least get all the bulk datatransfers happen
over internal NICs. One way to make sure is to hover on the
datanode node on NameNode webUI.. it shows the ip address.
good luck.
It might be better document your pains and findings in a Jira (with
most of the details in one or more comments rather than in
description).
Raghu.
John Martyniak wrote:
So I changed all of the 0.0.0.0 on one machine to point to the
192.168.1.102 address.
And still it picks up the hostname and ip address of the external
network.
I am kind of at my wits end with this, as I am not seeing a
solution yet, except to take the machines off of the external
network and leave them on the internal network which isn't an
option.
Has anybody had this problem before? What was the solution?
-John
On Jun 9, 2009, at 10:17 AM, Steve Loughran wrote:
One thing to consider is that some of the various services of
Hadoop are bound to 0:0:0:0, which means every Ipv4 address, you
really want to bring up everything, including jetty services, on
the en0 network adapter, by binding them to 192.168.1.102; this
will cause anyone trying to talk to them over the other network
to fail, which at least find the problem sooner rather than later
John Martyniak
President/CEO
Before Dawn Solutions, Inc.
9457 S. University Blvd #266
Highlands Ranch, CO 80126
o: 877-499-1562
c: 303-522-1756
e: [email protected]
w: http://www.beforedawnsolutions.com