shenxianqiang created HDFS-10243:
------------------------------------

             Summary: When using the TableMapping network topology, adding new 
datanoe need to restart the namenode
                 Key: HDFS-10243
                 URL: https://issues.apache.org/jira/browse/HDFS-10243
             Project: Hadoop HDFS
          Issue Type: Bug
         Environment: 2.6.0
            Reporter: shenxianqiang
            Priority: Minor


When I use the TableMapping network topology, adding new machines need to 
restart the namenode. Configure :
{quote}
     <property>
      <name>net.topology.node.switch.mapping.impl</name>
      <value>org.apache.hadoop.net.TableMapping</value>
    </property>

     <property>
      <name>net.topology.table.file.name</name>
      <value>/etc/hadoop/conf/net_topology_table</value>
    </property>
{quote}
In /etc/hadoop/conf/net_topology_table:
{quote}
  10.0.0.1 /SJS/SJS-1
  10.0.0.2 /CTC/CTC-2
  10.0.0.3 /TC/TC-3
{quote}
When I add a new datanode like 10.0.0.4 /SJS/SJS-2,datanode throw exception:
{quote}
2016-03-30 17:11:15,608 ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: 
Initialization failed for Block pool BP-408802935-10.0.0.100-1402130194887 
(Datanode Uuid null) service to nn1/10.0.0.100:8020 Failed to add 
/default-rack/10.0.0.4:50010: You cannot have a rack and a non-rack node at the 
same level of the network topology.
        at org.apache.hadoop.net.NetworkTopology.add(NetworkTopology.java:408)
        at 
org.apache.hadoop.hdfs.server.blockmanagement.DatanodeManager.registerDatanode(DatanodeManager.java:1001)
        at 
org.apache.hadoop.hdfs.server.namenode.FSNamesystem.registerDatanode(FSNamesystem.java:4837)
        at 
org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.registerDatanode(NameNodeRpcServer.java:1038)
        at 
org.apache.hadoop.hdfs.protocolPB.DatanodeProtocolServerSideTranslatorPB.registerDatanode(DatanodeProtocolServerSideTranslatorPB.java:92)
        at 
org.apache.hadoop.hdfs.protocol.proto.DatanodeProtocolProtos$DatanodeProtocolService$2.callBlockingMethod(DatanodeProtocolProtos.java:26378)
        at 
org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:587)
        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1026)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2013)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2009)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at 
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1892)
        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2007)
{quote}
I need to update /etc/hadoop/conf/net_topology_table,and restart namenode.After 
that,the new datanode should work.
Restart Namenode may cause a bad influence.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to