@InterfaceAudience.LimitedPrivate(value={"HDFS","MapReduce"}) @InterfaceStability.Unstable public class NetworkTopologyWithNodeGroup extends NetworkTopology
NetworkTopology
NetworkTopology.InvalidTopologyException
限定符和类型 | 字段和说明 |
---|---|
static String |
DEFAULT_NODEGROUP |
DEFAULT_HOST_LEVEL, DEFAULT_RACK, LOG, netlock, numOfRacks, r
构造器和说明 |
---|
NetworkTopologyWithNodeGroup() |
限定符和类型 | 方法和说明 |
---|---|
void |
add(Node node)
Add a leaf node
Update node counter & rack counter if necessary
|
protected Node |
getNodeForNetworkLocation(Node node)
Return a reference to the node given its string representation.
|
String |
getNodeGroup(String loc)
Given a string representation of a node group for a specific network
location
|
String |
getRack(String loc)
Given a string representation of a rack for a specific network
location
To be overridden in subclasses for specific NetworkTopology
implementations, as alternative to overriding the full
NetworkTopology.getRack(String) method. |
boolean |
isNodeGroupAware()
Check if network topology is aware of NodeGroup
|
boolean |
isOnSameNodeGroup(Node node1,
Node node2)
Check if two nodes are on the same node group (hypervisor) The
assumption here is: each nodes are leaf nodes.
|
boolean |
isOnSameRack(Node node1,
Node node2)
Check if two nodes are on the same rack
|
void |
pseudoSortByDistance(Node reader,
Node[] nodes)
Sort nodes array by their distances to reader
It linearly scans the array, if a local node is found, swap it with
the first element of the array.
|
void |
remove(Node node)
Remove a node
Update node counter and rack counter if necessary
|
chooseRandom, contains, countNumOfAvailableNodes, getDistance, getFirstHalf, getInstance, getLastHalf, getLeaves, getNode, getNumOfLeaves, getNumOfRacks, isSameParents, swap, toString
protected Node getNodeForNetworkLocation(Node node)
NetworkTopology
NetworkTopology.getNode(String)
.
To be overridden in subclasses for specific NetworkTopology
implementations, as alternative to overriding the full NetworkTopology.add(Node)
method.
getNodeForNetworkLocation
在类中 NetworkTopology
node
- The string representation of this node's network location is
used to retrieve a Node object.NetworkTopology.add(Node)
,
NetworkTopology.getNode(String)
public String getRack(String loc)
NetworkTopology
NetworkTopology.getRack(String)
method.getRack
在类中 NetworkTopology
loc
- a path-like string representation of a network locationpublic String getNodeGroup(String loc)
loc
- a path-like string representation of a network locationpublic boolean isOnSameRack(Node node1, Node node2)
NetworkTopology
isOnSameRack
在类中 NetworkTopology
node1
- one nodenode2
- another nodepublic boolean isOnSameNodeGroup(Node node1, Node node2)
isOnSameNodeGroup
在类中 NetworkTopology
node1
- one node (can be null)node2
- another node (can be null)IllegalArgumentException
- when either node1 or node2 is null, or node1 or node2 do
not belong to the clusterpublic boolean isNodeGroupAware()
isNodeGroupAware
在类中 NetworkTopology
public void add(Node node)
add
在类中 NetworkTopology
node
- node to be added; can be nullIllegalArgumentException
- if add a node to a leave
or node to be added is not a leafpublic void remove(Node node)
remove
在类中 NetworkTopology
node
- node to be removed; can be nullpublic void pseudoSortByDistance(Node reader, Node[] nodes)
pseudoSortByDistance
在类中 NetworkTopology
reader
- the node that wishes to read a block from one of the nodesnodes
- the list of nodes containing data for the readerCopyright © 2009 The Apache Software Foundation