Author: szetszwo Date: Wed Nov 28 19:41:57 2012 New Revision: 1414878 URL: http://svn.apache.org/viewvc?rev=1414878&view=rev Log: HDFS-3495. Update Balancer to support new NetworkTopology with NodeGroup. Contributed by Junping Du
Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java Modified: hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java?rev=1414878&r1=1414877&r2=1414878&view=diff ============================================================================== --- hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java (original) +++ hadoop/common/trunk/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/net/NetworkTopology.java Wed Nov 28 19:41:57 2012 @@ -28,6 +28,9 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.hadoop.classification.InterfaceAudience; import org.apache.hadoop.classification.InterfaceStability; +import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.CommonConfigurationKeysPublic; +import org.apache.hadoop.util.ReflectionUtils; /** The class represents a cluster of computer with a tree hierarchical * network topology. @@ -52,6 +55,19 @@ public class NetworkTopology { super(msg); } } + + /** + * Get an instance of NetworkTopology based on the value of the configuration + * parameter net.topology.impl. + * + * @param conf the configuration to be used + * @return an instance of NetworkTopology + */ + public static NetworkTopology getInstance(Configuration conf){ + return ReflectionUtils.newInstance( + conf.getClass(CommonConfigurationKeysPublic.NET_TOPOLOGY_IMPL_KEY, + NetworkTopology.class, NetworkTopology.class), conf); + } /** InnerNode represents a switch/router of a data center or rack. * Different from a leaf node, it has non-null children.