Junping Du created HADOOP-8469: ---------------------------------- Summary: Make NetworkTopology class pluggable and support user specified topology class Key: HADOOP-8469 URL: https://issues.apache.org/jira/browse/HADOOP-8469 Project: Hadoop Common Issue Type: Sub-task Affects Versions: 2.0.0-alpha, 1.0.0 Reporter: Junping Du Assignee: Junping Du
The class NetworkTopology is where the three-layer hierarchical topology is modeled in the current code base and is instantiated directly by the DatanodeManager and Balancer. To support alternative topologies, changes were make the topology class pluggable, that is to support using a user specified topology class specified in the Hadoop configuration file core-defaul.xml. The user specified topology class is instantiated using reflection in the same manner as other customizable classes in Hadoop. If no use specified topology class is found, the fallback is to use the NetworkTopology to preserve current behavior. To make it possible to reuse code in NetworkTopology several minor changes were made to make the class more extensible. The NetworkTopology class is currently annotated with @InterfaceAudience.LimitedPrivate({"HDFS", "MapReduce"}) and @InterfaceStability.Unstable. The proposed changes in NetworkTopology listed below 1. Some fields were changes from private to protected 2. Added some protected methods so that sub classes could override behavior 3. Added a new method,isNodeGroupAware,to NetworkTopology 4. The inner class InnerNode was made a package protected class to it would be easier to subclass -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira