blob: 0867b9c3f24217451b191ed2d9d6d2127580f66b [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_292) on Tue Jun 15 06:06:55 GMT 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>BlockPlacementPolicyWithNodeGroup (Apache Hadoop HDFS 3.3.1 API)</title>
<meta name="date" content="2021-06-15">
<link rel="stylesheet" type="text/css" href="../../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="BlockPlacementPolicyWithNodeGroup (Apache Hadoop HDFS 3.3.1 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/BlockPlacementPolicyWithNodeGroup.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/BlockManagerFaultInjector.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementStatusDefault.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyWithNodeGroup.html" target="_top">Frames</a></li>
<li><a href="BlockPlacementPolicyWithNodeGroup.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.hdfs.server.blockmanagement</div>
<h2 title="Class BlockPlacementPolicyWithNodeGroup" class="title">Class BlockPlacementPolicyWithNodeGroup</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy</li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault</li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyWithNodeGroup</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public class <span class="typeNameLabel">BlockPlacementPolicyWithNodeGroup</span>
extends org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault</pre>
<div class="block">The class is responsible for choosing the desired number of targets
for placing block replicas on environment with node-group layer.
The replica placement strategy is adjusted to:
If the writer is on a datanode, the 1st replica is placed on the local
node(or local node-group or on local rack), otherwise a random datanode.
The 2nd replica is placed on a datanode that is on a different rack with 1st
replica node.
The 3rd replica is placed on a datanode which is on a different node-group
but the same rack as the second replica node.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault</h3>
<code>clusterMap, considerLoad, considerLoadFactor, heartbeatInterval, host2datanodeMap, tolerateHeartbeatMultiplier</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy</h3>
<code>LOG</code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyWithNodeGroup.html#BlockPlacementPolicyWithNodeGroup--">BlockPlacementPolicyWithNodeGroup</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyWithNodeGroup.html#addToExcludedNodes-org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor-java.util.Set-">addToExcludedNodes</a></span>(org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor&nbsp;chosenNode,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.hadoop.net.Node&gt;&nbsp;excludedNodes)</code>
<div class="block">Find other nodes in the same nodegroup of <i>localMachine</i> and add them
into <i>excludeNodes</i> as replica should not be duplicated for nodes
within the same nodegroup</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyWithNodeGroup.html#chooseFavouredNodes-java.lang.String-int-java.util.List-java.util.Set-long-int-java.util.List-boolean-java.util.EnumMap-">chooseFavouredNodes</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;src,
int&nbsp;numOfReplicas,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor&gt;&nbsp;favoredNodes,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.hadoop.net.Node&gt;&nbsp;favoriteAndExcludedNodes,
long&nbsp;blocksize,
int&nbsp;maxNodesPerRack,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&gt;&nbsp;results,
boolean&nbsp;avoidStaleNodes,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumMap.html?is-external=true" title="class or interface in java.util">EnumMap</a>&lt;org.apache.hadoop.fs.StorageType,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;storageTypes)</code>
<div class="block">choose all good favored nodes as target.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyWithNodeGroup.html#chooseLocalRack-org.apache.hadoop.net.Node-java.util.Set-long-int-java.util.List-boolean-java.util.EnumMap-">chooseLocalRack</a></span>(org.apache.hadoop.net.Node&nbsp;localMachine,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.hadoop.net.Node&gt;&nbsp;excludedNodes,
long&nbsp;blocksize,
int&nbsp;maxNodesPerRack,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&gt;&nbsp;results,
boolean&nbsp;avoidStaleNodes,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumMap.html?is-external=true" title="class or interface in java.util">EnumMap</a>&lt;org.apache.hadoop.fs.StorageType,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;storageTypes)</code>
<div class="block">Choose one node from the rack that <i>localMachine</i> is on.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyWithNodeGroup.html#chooseLocalStorage-org.apache.hadoop.net.Node-java.util.Set-long-int-java.util.List-boolean-java.util.EnumMap-boolean-">chooseLocalStorage</a></span>(org.apache.hadoop.net.Node&nbsp;localMachine,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.hadoop.net.Node&gt;&nbsp;excludedNodes,
long&nbsp;blocksize,
int&nbsp;maxNodesPerRack,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&gt;&nbsp;results,
boolean&nbsp;avoidStaleNodes,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumMap.html?is-external=true" title="class or interface in java.util">EnumMap</a>&lt;org.apache.hadoop.fs.StorageType,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;storageTypes,
boolean&nbsp;fallbackToNodeGroupAndLocalRack)</code>
<div class="block">choose local node of <i>localMachine</i> as the target.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyWithNodeGroup.html#chooseRemoteRack-int-org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor-java.util.Set-long-int-java.util.List-boolean-java.util.EnumMap-">chooseRemoteRack</a></span>(int&nbsp;numOfReplicas,
org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor&nbsp;localMachine,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.hadoop.net.Node&gt;&nbsp;excludedNodes,
long&nbsp;blocksize,
int&nbsp;maxReplicasPerRack,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&gt;&nbsp;results,
boolean&nbsp;avoidStaleNodes,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumMap.html?is-external=true" title="class or interface in java.util">EnumMap</a>&lt;org.apache.hadoop.fs.StorageType,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;storageTypes)</code>
<div class="block">Choose <i>numOfReplicas</i> nodes from the racks
that <i>localMachine</i> is NOT on.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyWithNodeGroup.html#getRack-org.apache.hadoop.hdfs.protocol.DatanodeInfo-">getRack</a></span>(org.apache.hadoop.hdfs.protocol.DatanodeInfo&nbsp;cur)</code>
<div class="block">Get rack string from a data node</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyWithNodeGroup.html#initialize-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hdfs.server.blockmanagement.FSClusterStats-org.apache.hadoop.net.NetworkTopology-org.apache.hadoop.hdfs.server.blockmanagement.Host2NodesMap-">initialize</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
org.apache.hadoop.hdfs.server.blockmanagement.FSClusterStats&nbsp;stats,
org.apache.hadoop.net.NetworkTopology&nbsp;clusterMap,
org.apache.hadoop.hdfs.server.blockmanagement.Host2NodesMap&nbsp;host2datanodeMap)</code>
<div class="block">Used to setup a BlockPlacementPolicy object.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyWithNodeGroup.html#isMovable-java.util.Collection-org.apache.hadoop.hdfs.protocol.DatanodeInfo-org.apache.hadoop.hdfs.protocol.DatanodeInfo-">isMovable</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;org.apache.hadoop.hdfs.protocol.DatanodeInfo&gt;&nbsp;locs,
org.apache.hadoop.hdfs.protocol.DatanodeInfo&nbsp;source,
org.apache.hadoop.hdfs.protocol.DatanodeInfo&nbsp;target)</code>
<div class="block">Check if there are any replica (other than source) on the same node group
with target.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyWithNodeGroup.html#pickupReplicaSet-java.util.Collection-java.util.Collection-java.util.Map-">pickupReplicaSet</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&gt;&nbsp;first,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&gt;&nbsp;second,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&gt;&gt;&nbsp;rackMap)</code>
<div class="block">Pick up replica node set for deleting replica as over-replicated.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementStatus</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyWithNodeGroup.html#verifyBlockPlacement-org.apache.hadoop.hdfs.protocol.DatanodeInfo:A-int-">verifyBlockPlacement</a></span>(org.apache.hadoop.hdfs.protocol.DatanodeInfo[]&nbsp;locs,
int&nbsp;numberOfReplicas)</code>
<div class="block">Verify if the block's placement meets requirement of placement policy,
i.e.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault</h3>
<code>chooseDataNode, chooseDataNode, chooseLocalOrFavoredStorage, chooseLocalStorage, chooseRandom, chooseRandom, chooseReplicasToDelete, chooseReplicaToDelete, chooseTarget, chooseTarget, chooseTargetInOrder, getMaxNodesPerRack</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy</h3>
<code>adjustSetsWithChosenReplica, getDatanodeInfo, splitNodesWithRack</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="BlockPlacementPolicyWithNodeGroup--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>BlockPlacementPolicyWithNodeGroup</h4>
<pre>protected&nbsp;BlockPlacementPolicyWithNodeGroup()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="initialize-org.apache.hadoop.conf.Configuration-org.apache.hadoop.hdfs.server.blockmanagement.FSClusterStats-org.apache.hadoop.net.NetworkTopology-org.apache.hadoop.hdfs.server.blockmanagement.Host2NodesMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialize</h4>
<pre>public&nbsp;void&nbsp;initialize(org.apache.hadoop.conf.Configuration&nbsp;conf,
org.apache.hadoop.hdfs.server.blockmanagement.FSClusterStats&nbsp;stats,
org.apache.hadoop.net.NetworkTopology&nbsp;clusterMap,
org.apache.hadoop.hdfs.server.blockmanagement.Host2NodesMap&nbsp;host2datanodeMap)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy</code></span></div>
<div class="block">Used to setup a BlockPlacementPolicy object. This should be defined by
all implementations of a BlockPlacementPolicy.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>initialize</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conf</code> - the configuration object</dd>
<dd><code>stats</code> - retrieve cluster status from here</dd>
<dd><code>clusterMap</code> - cluster topology</dd>
</dl>
</li>
</ul>
<a name="chooseFavouredNodes-java.lang.String-int-java.util.List-java.util.Set-long-int-java.util.List-boolean-java.util.EnumMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>chooseFavouredNodes</h4>
<pre>protected&nbsp;void&nbsp;chooseFavouredNodes(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;src,
int&nbsp;numOfReplicas,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor&gt;&nbsp;favoredNodes,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.hadoop.net.Node&gt;&nbsp;favoriteAndExcludedNodes,
long&nbsp;blocksize,
int&nbsp;maxNodesPerRack,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&gt;&nbsp;results,
boolean&nbsp;avoidStaleNodes,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumMap.html?is-external=true" title="class or interface in java.util">EnumMap</a>&lt;org.apache.hadoop.fs.StorageType,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;storageTypes)
throws org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.NotEnoughReplicasException</pre>
<div class="block">choose all good favored nodes as target.
If no enough targets, then choose one replica from
each bad favored node's node group.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>chooseFavouredNodes</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>NotEnoughReplicasException</code></dd>
<dd><code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.NotEnoughReplicasException</code></dd>
</dl>
</li>
</ul>
<a name="chooseLocalStorage-org.apache.hadoop.net.Node-java.util.Set-long-int-java.util.List-boolean-java.util.EnumMap-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>chooseLocalStorage</h4>
<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&nbsp;chooseLocalStorage(org.apache.hadoop.net.Node&nbsp;localMachine,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.hadoop.net.Node&gt;&nbsp;excludedNodes,
long&nbsp;blocksize,
int&nbsp;maxNodesPerRack,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&gt;&nbsp;results,
boolean&nbsp;avoidStaleNodes,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumMap.html?is-external=true" title="class or interface in java.util">EnumMap</a>&lt;org.apache.hadoop.fs.StorageType,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;storageTypes,
boolean&nbsp;fallbackToNodeGroupAndLocalRack)
throws org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.NotEnoughReplicasException</pre>
<div class="block">choose local node of <i>localMachine</i> as the target.
If localMachine is not available, will fallback to nodegroup/rack
when flag <i>fallbackToNodeGroupAndLocalRack</i> is set.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>chooseLocalStorage</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the chosen node</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.NotEnoughReplicasException</code></dd>
</dl>
</li>
</ul>
<a name="chooseLocalRack-org.apache.hadoop.net.Node-java.util.Set-long-int-java.util.List-boolean-java.util.EnumMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>chooseLocalRack</h4>
<pre>protected&nbsp;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&nbsp;chooseLocalRack(org.apache.hadoop.net.Node&nbsp;localMachine,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.hadoop.net.Node&gt;&nbsp;excludedNodes,
long&nbsp;blocksize,
int&nbsp;maxNodesPerRack,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&gt;&nbsp;results,
boolean&nbsp;avoidStaleNodes,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumMap.html?is-external=true" title="class or interface in java.util">EnumMap</a>&lt;org.apache.hadoop.fs.StorageType,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;storageTypes)
throws org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.NotEnoughReplicasException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault</code></span></div>
<div class="block">Choose one node from the rack that <i>localMachine</i> is on.
if no such node is available, choose one node from the rack where
a second replica is on.
if still no such node is available, choose a random node
in the cluster.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>chooseLocalRack</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the chosen node</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.NotEnoughReplicasException</code></dd>
</dl>
</li>
</ul>
<a name="chooseRemoteRack-int-org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor-java.util.Set-long-int-java.util.List-boolean-java.util.EnumMap-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>chooseRemoteRack</h4>
<pre>protected&nbsp;void&nbsp;chooseRemoteRack(int&nbsp;numOfReplicas,
org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor&nbsp;localMachine,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.hadoop.net.Node&gt;&nbsp;excludedNodes,
long&nbsp;blocksize,
int&nbsp;maxReplicasPerRack,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&gt;&nbsp;results,
boolean&nbsp;avoidStaleNodes,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/EnumMap.html?is-external=true" title="class or interface in java.util">EnumMap</a>&lt;org.apache.hadoop.fs.StorageType,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;storageTypes)
throws org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.NotEnoughReplicasException</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault</code></span></div>
<div class="block">Choose <i>numOfReplicas</i> nodes from the racks
that <i>localMachine</i> is NOT on.
If not enough nodes are available, choose the remaining ones
from the local rack</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>chooseRemoteRack</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault</code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy.NotEnoughReplicasException</code></dd>
</dl>
</li>
</ul>
<a name="getRack-org.apache.hadoop.hdfs.protocol.DatanodeInfo-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRack</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getRack(org.apache.hadoop.hdfs.protocol.DatanodeInfo&nbsp;cur)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy</code></span></div>
<div class="block">Get rack string from a data node</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>getRack</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>rack of data node</dd>
</dl>
</li>
</ul>
<a name="addToExcludedNodes-org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor-java.util.Set-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addToExcludedNodes</h4>
<pre>protected&nbsp;int&nbsp;addToExcludedNodes(org.apache.hadoop.hdfs.server.blockmanagement.DatanodeDescriptor&nbsp;chosenNode,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Set.html?is-external=true" title="class or interface in java.util">Set</a>&lt;org.apache.hadoop.net.Node&gt;&nbsp;excludedNodes)</pre>
<div class="block">Find other nodes in the same nodegroup of <i>localMachine</i> and add them
into <i>excludeNodes</i> as replica should not be duplicated for nodes
within the same nodegroup</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>addToExcludedNodes</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault</code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>number of new excluded nodes</dd>
</dl>
</li>
</ul>
<a name="pickupReplicaSet-java.util.Collection-java.util.Collection-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>pickupReplicaSet</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&gt;&nbsp;pickupReplicaSet(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&gt;&nbsp;first,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&gt;&nbsp;second,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;<a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/DatanodeStorageInfo.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement">DatanodeStorageInfo</a>&gt;&gt;&nbsp;rackMap)</pre>
<div class="block">Pick up replica node set for deleting replica as over-replicated.
First set contains replica nodes on rack with more than one
replica while second set contains remaining replica nodes.
If first is not empty, divide first set into two subsets:
moreThanOne contains nodes on nodegroup with more than one replica
exactlyOne contains the remaining nodes in first set
then pickup priSet if not empty.
If first is empty, then pick second.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>pickupReplicaSet</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault</code></dd>
</dl>
</li>
</ul>
<a name="isMovable-java.util.Collection-org.apache.hadoop.hdfs.protocol.DatanodeInfo-org.apache.hadoop.hdfs.protocol.DatanodeInfo-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isMovable</h4>
<pre>public&nbsp;boolean&nbsp;isMovable(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;org.apache.hadoop.hdfs.protocol.DatanodeInfo&gt;&nbsp;locs,
org.apache.hadoop.hdfs.protocol.DatanodeInfo&nbsp;source,
org.apache.hadoop.hdfs.protocol.DatanodeInfo&nbsp;target)</pre>
<div class="block">Check if there are any replica (other than source) on the same node group
with target. If true, then target is not a good candidate for placing
specific replica as we don't want 2 replicas under the same nodegroup.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>isMovable</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>locs</code> - all replicas including source and target</dd>
<dd><code>source</code> - source replica of the move</dd>
<dd><code>target</code> - target replica of the move</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if there are any replica (other than source) on the same node
group with target</dd>
</dl>
</li>
</ul>
<a name="verifyBlockPlacement-org.apache.hadoop.hdfs.protocol.DatanodeInfo:A-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>verifyBlockPlacement</h4>
<pre>public&nbsp;org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementStatus&nbsp;verifyBlockPlacement(org.apache.hadoop.hdfs.protocol.DatanodeInfo[]&nbsp;locs,
int&nbsp;numberOfReplicas)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicy</code></span></div>
<div class="block">Verify if the block's placement meets requirement of placement policy,
i.e. replicas are placed on no less than minRacks racks in the system.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>verifyBlockPlacement</code>&nbsp;in class&nbsp;<code>org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault</code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>locs</code> - block with locations</dd>
<dd><code>numberOfReplicas</code> - replica number of file to be verified</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the result of verification</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/BlockPlacementPolicyWithNodeGroup.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/BlockManagerFaultInjector.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementStatusDefault.html" title="class in org.apache.hadoop.hdfs.server.blockmanagement"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/hdfs/server/blockmanagement/BlockPlacementPolicyWithNodeGroup.html" target="_top">Frames</a></li>
<li><a href="BlockPlacementPolicyWithNodeGroup.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.hadoop.hdfs.server.blockmanagement.BlockPlacementPolicyDefault">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2008&#x2013;2021 <a href="https://www.apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>