When the network topology is invalid, the DataNode refuses to start with a message such as this:
org.apache.hadoop.hdfs.server.protocol.DatanodeProtocol.registerDatanode from 172.29.122.23:55886: error:
org.apache.hadoop.net.NetworkTopology$InvalidTopologyException: Invalid network topology. You cannot have a rack and a non-rack node at the same level of the network topology.
This is expected if you specify a topology file or script which puts leaf nodes at two different depths. However, one problem we have now is that this incorrect topology is cached forever. Once the NameNode sees it, this DataNode can never be added to the cluster, since this exception will be rethrown each time. The NameNode will not check to see if the topology file or script has changed. We should clear the topology mappings when there is an InvalidTopologyException, to prevent this problem.