Hi guys,

i have following situation. A network setup with 2 network interfaces, eth0 
(external) and eth1(internal).
Now in order to use the internal ips for hadoop i set 
dfs.datanode.dns.interface and mapred.tasktracker.dns.interface to eth1.
When tasktracker or datanode starting the following happens:
- hadoop picks the ip(s) from eth1
- hadoop tries to do a reverse dns lookup on the internal ip(s) - which fails
- hadoop fallback to InetAddress.getLocalHost() - which is the external dns

So in the end DNS.getDefaultIp(eth1) returns the internal ip whereas 
DNS.getDefaultHost(eth1) returns the external dns.

Isn't this a bug. Should in case the reverse lookup fails 
InetAddress.getByName(ips[ctr]).getCanonicalHost() rather be taken ?
Are there any suggested workarounds for this situation ?

best regards
Johannes

Reply via email to