Class AvailableSpaceBlockPlacementPolicy
java.lang.Object
org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy
org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault
org.apache.hadoop.hdfs.server.blockmanagement.AvailableSpaceBlockPlacementPolicy
Space balanced block placement policy.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault
BlockPlacementPolicyDefault.NodeNotChosenReasonNested classes/interfaces inherited from class org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy
BlockPlacementPolicy.NotEnoughReplicasException -
Field Summary
Fields inherited from class org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault
clusterMap, considerLoad, considerLoadFactor, heartbeatInterval, host2datanodeMap, tolerateHeartbeatMultiplier -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected DatanodeDescriptorchooseDataNode(String scope, Collection<org.apache.hadoop.net.Node> excludedNode) Choose a datanode from the given scope.protected DatanodeDescriptorchooseDataNode(String scope, Collection<org.apache.hadoop.net.Node> excludedNode, org.apache.hadoop.fs.StorageType type) Choose a datanode from the given scope with specified storage type.protected DatanodeStorageInfochooseLocalStorage(org.apache.hadoop.net.Node localMachine, Set<org.apache.hadoop.net.Node> excludedNodes, long blocksize, int maxNodesPerRack, List<DatanodeStorageInfo> results, boolean avoidStaleNodes, EnumMap<org.apache.hadoop.fs.StorageType, Integer> storageTypes, boolean fallbackToLocalRack) Choose localMachine as the target.protected intcompareDataNode(DatanodeDescriptor a, DatanodeDescriptor b, boolean isBalanceLocal) Compare the two data nodes.voidinitialize(org.apache.hadoop.conf.Configuration conf, FSClusterStats stats, org.apache.hadoop.net.NetworkTopology clusterMap, org.apache.hadoop.hdfs.server.blockmanagement.Host2NodesMap host2datanodeMap) Used to setup a BlockPlacementPolicy object.Methods inherited from class org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault
addToExcludedNodes, chooseFavouredNodes, chooseLocalOrFavoredStorage, chooseLocalRack, chooseLocalStorage, chooseRandom, chooseRandom, chooseRemoteRack, chooseReplicasToDelete, chooseReplicaToDelete, chooseTarget, chooseTarget, chooseTargetInOrder, getExcludeSlowNodesEnabled, getMaxNodesPerRack, getMinBlocksForWrite, isMovable, logNodeIsNotChosen, pickupReplicaSet, setExcludeSlowNodesEnabled, setMinBlocksForWrite, verifyBlockPlacementMethods inherited from class org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy
adjustSetsWithChosenReplica, getDatanodeInfo, getRack, splitNodesWithRack
-
Constructor Details
-
AvailableSpaceBlockPlacementPolicy
public AvailableSpaceBlockPlacementPolicy()
-
-
Method Details
-
initialize
public void initialize(org.apache.hadoop.conf.Configuration conf, FSClusterStats stats, org.apache.hadoop.net.NetworkTopology clusterMap, org.apache.hadoop.hdfs.server.blockmanagement.Host2NodesMap host2datanodeMap) Description copied from class:BlockPlacementPolicyUsed to setup a BlockPlacementPolicy object. This should be defined by all implementations of a BlockPlacementPolicy.- Overrides:
initializein classBlockPlacementPolicyDefault- Parameters:
conf- the configuration objectstats- retrieve cluster status from hereclusterMap- cluster topology
-
chooseDataNode
protected DatanodeDescriptor chooseDataNode(String scope, Collection<org.apache.hadoop.net.Node> excludedNode, org.apache.hadoop.fs.StorageType type) Description copied from class:BlockPlacementPolicyDefaultChoose a datanode from the given scope with specified storage type.- Overrides:
chooseDataNodein classBlockPlacementPolicyDefault- Returns:
- the chosen node, if there is any.
-
chooseLocalStorage
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, EnumMap<org.apache.hadoop.fs.StorageType, Integer> storageTypes, boolean fallbackToLocalRack) throws BlockPlacementPolicy.NotEnoughReplicasExceptionDescription copied from class:BlockPlacementPolicyDefaultChoose localMachine as the target. if localMachine is not available, choose a node on the same rack- Overrides:
chooseLocalStoragein classBlockPlacementPolicyDefault- Returns:
- the chosen storage
- Throws:
BlockPlacementPolicy.NotEnoughReplicasException
-
chooseDataNode
protected DatanodeDescriptor chooseDataNode(String scope, Collection<org.apache.hadoop.net.Node> excludedNode) Description copied from class:BlockPlacementPolicyDefaultChoose a datanode from the given scope.- Overrides:
chooseDataNodein classBlockPlacementPolicyDefault- Returns:
- the chosen node, if there is any.
-
compareDataNode
Compare the two data nodes.
-