public class BlockPlacementPolicyWithNodeGroup extends org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault
| Modifier | Constructor and Description |
|---|---|
protected |
BlockPlacementPolicyWithNodeGroup() |
protected |
BlockPlacementPolicyWithNodeGroup(org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.hdfs.server.namenode.FSClusterStats stats,
org.apache.hadoop.net.NetworkTopology clusterMap) |
| Modifier and Type | Method and Description |
|---|---|
protected int |
addToExcludedNodes(org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor chosenNode,
Set<org.apache.hadoop.net.Node> excludedNodes)
Find other nodes in the same nodegroup of localMachine and add them
into excludeNodes as replica should not be duplicated for nodes
within the same nodegroup
|
protected DatanodeStorageInfo |
chooseLocalRack(org.apache.hadoop.net.Node localMachine,
Set<org.apache.hadoop.net.Node> excludedNodes,
long blocksize,
int maxNodesPerRack,
List<DatanodeStorageInfo> results,
boolean avoidStaleNodes,
StorageType storageType)
Choose one node from the rack that localMachine is on.
|
protected DatanodeStorageInfo |
chooseLocalStorage(org.apache.hadoop.net.Node localMachine,
Set<org.apache.hadoop.net.Node> excludedNodes,
long blocksize,
int maxNodesPerRack,
List<DatanodeStorageInfo> results,
boolean avoidStaleNodes,
StorageType storageType)
choose local node of localMachine as the target.
|
protected void |
chooseRemoteRack(int numOfReplicas,
org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor localMachine,
Set<org.apache.hadoop.net.Node> excludedNodes,
long blocksize,
int maxReplicasPerRack,
List<DatanodeStorageInfo> results,
boolean avoidStaleNodes,
StorageType storageType)
Choose numOfReplicas nodes from the racks
that localMachine is NOT on.
|
protected String |
getRack(org.apache.hadoop.hdfs.protocol.DatanodeInfo cur)
Get rack string from a data node
|
void |
initialize(org.apache.hadoop.conf.Configuration conf,
org.apache.hadoop.hdfs.server.namenode.FSClusterStats stats,
org.apache.hadoop.net.NetworkTopology clusterMap)
Used to setup a BlockPlacementPolicy object.
|
Collection<org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor> |
pickupReplicaSet(Collection<org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor> first,
Collection<org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor> second)
Pick up replica node set for deleting replica as over-replicated.
|
chooseRandom, chooseRandom, chooseReplicaToDelete, chooseTarget, verifyBlockPlacementprotected BlockPlacementPolicyWithNodeGroup(org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.hdfs.server.namenode.FSClusterStats stats, org.apache.hadoop.net.NetworkTopology clusterMap)
protected BlockPlacementPolicyWithNodeGroup()
public void initialize(org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.hdfs.server.namenode.FSClusterStats stats, org.apache.hadoop.net.NetworkTopology clusterMap)
org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyinitialize in class org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefaultconf - the configuration objectstats - retrieve cluster status from hereclusterMap - cluster topologyprotected DatanodeStorageInfo chooseLocalStorage(org.apache.hadoop.net.Node localMachine, Set<org.apache.hadoop.net.Node> excludedNodes, long blocksize, int maxNodesPerRack, List<DatanodeStorageInfo> results, boolean avoidStaleNodes, StorageType storageType) throws org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.NotEnoughReplicasException
chooseLocalStorage in class org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefaultorg.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.NotEnoughReplicasExceptionprotected DatanodeStorageInfo chooseLocalRack(org.apache.hadoop.net.Node localMachine, Set<org.apache.hadoop.net.Node> excludedNodes, long blocksize, int maxNodesPerRack, List<DatanodeStorageInfo> results, boolean avoidStaleNodes, StorageType storageType) throws org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.NotEnoughReplicasException
org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefaultchooseLocalRack in class org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefaultorg.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.NotEnoughReplicasExceptionprotected void chooseRemoteRack(int numOfReplicas, org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor localMachine, Set<org.apache.hadoop.net.Node> excludedNodes, long blocksize, int maxReplicasPerRack, List<DatanodeStorageInfo> results, boolean avoidStaleNodes, StorageType storageType) throws org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.NotEnoughReplicasException
chooseRemoteRack in class org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefaultorg.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.NotEnoughReplicasExceptionprotected String getRack(org.apache.hadoop.hdfs.protocol.DatanodeInfo cur)
org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicygetRack in class org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyprotected int addToExcludedNodes(org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor chosenNode, Set<org.apache.hadoop.net.Node> excludedNodes)
addToExcludedNodes in class org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefaultpublic Collection<org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor> pickupReplicaSet(Collection<org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor> first, Collection<org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor> second)
pickupReplicaSet in class org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefaultCopyright © 2014 Apache Software Foundation. All Rights Reserved.