You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-dev@hadoop.apache.org by "shenxianqiang (JIRA)" <ji...@apache.org> on 2016/04/01 09:01:25 UTC

[jira] [Created] (HDFS-10243) When using the TableMapping network topology, adding new datanoe need to restart the namenode

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)