[ https://issues.apache.org/jira/browse/HADOOP-6867?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Tsz Wo Nicholas Sze resolved HADOOP-6867. ----------------------------------------- Resolution: Not a Problem I believe this is not a problem anymore after other JIRAs such as HDFS-4963. Please feel free to reopen this if it is not the case. Resolving ... > Using socket address for datanode registry breaks multihoming > ------------------------------------------------------------- > > Key: HADOOP-6867 > URL: https://issues.apache.org/jira/browse/HADOOP-6867 > Project: Hadoop Common > Issue Type: Bug > Affects Versions: 0.20.2 > Environment: hadoop-0.20-0.20.2+228-1, centos 5, distcp > Reporter: Jordan Sissel > > Related: > * https://issues.apache.org/jira/browse/HADOOP-985 > * https://issues.apache.org/jira/secure/attachment/12350813/HADOOP-985-1.patch > * http://old.nabble.com/public-IP-for-datanode-on-EC2-td19336240.html > * > http://www.cloudera.com/blog/2008/12/securing-a-hadoop-cluster-through-a-gateway/ > > Datanodes register using their dns name (even configurable with > dfs.datanode.dns.interface). However, the Namenode only really uses the > source address that the registration came from when sharing it to clients > wanting to write to HDFS. > Specific environment that causes this problem: > * Datanode and Namenode multihomed on two networks. > * Datanode registers to namenode using dns name on network #1 > * Client (distcp) connects to namenode on network #2 \(*) and is told to > write to datanodes on network #1, which doesn't work for us. > \(*) Allowing contact to the namenode on multiple networks was achieved with > a socat proxy hack that tunnels network#2 to network#1 port 8020. This is > unrelated to the issue at hand. > The cloudera link above recommends proxying for other reasons than > multihoming, but it would work, but it doesn't sound like it would well > (bandwidth, multiplicity, multitenant, etc). > Our specific scenario is wanting to distcp over a different network interface > than the datanodes register themselves on, but it would be nice if both (all) > interfaces worked. We are internally going to patch hadoop to roll back parts > of the patch mentioned above so that we rely the datanode name rather than > the socket address it uses to talk to the namenode. The alternate option is > to push config changes to all nodes that force them to listen/register on one > specific interface only. This helps us work around our specific problem, but > doesn't really help with multihoming. > I would propose that datanodes register all interface addresses during the > registration/heartbeat/whatever process does this and hdfs clients would be > given all addresses for a specific node to perform operations against and > they could select accordingly (or 'whichever worked first') just like > round-robin dns does. -- This message was sent by Atlassian JIRA (v6.2#6252)