blob: 90cbe4e23bd0a10669d62706df8a33c04a9c7b55 [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:12:12 GMT 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AppPlacementAllocator (Apache Hadoop YARN ResourceManager 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="AppPlacementAllocator (Apache Hadoop YARN ResourceManager 3.3.1 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":10,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":10,"i12":10,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/AppPlacementAllocator.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>Prev&nbsp;Class</li>
<li><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/CandidateNodeSet.html" title="interface in org.apache.hadoop.yarn.server.resourcemanager.scheduler.placement"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html" target="_top">Frames</a></li>
<li><a href="AppPlacementAllocator.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="#field.summary">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><a href="#field.detail">Field</a>&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.yarn.server.resourcemanager.scheduler.placement</div>
<h2 title="Class AppPlacementAllocator" class="title">Class AppPlacementAllocator&lt;N extends <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerNode.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler">SchedulerNode</a>&gt;</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.yarn.server.resourcemanager.scheduler.placement.AppPlacementAllocator&lt;N&gt;</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/LocalityAppPlacementAllocator.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.placement">LocalityAppPlacementAllocator</a>, <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/SingleConstraintAppPlacementAllocator.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.placement">SingleConstraintAppPlacementAllocator</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">AppPlacementAllocator&lt;N extends <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerNode.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler">SchedulerNode</a>&gt;</span>
extends <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></pre>
<div class="block"><p>
This class has the following functionality:
1) Keeps track of pending resource requests when following events happen:
- New ResourceRequests are added to scheduler.
- New containers get allocated.
2) Determines the order that the nodes given in the <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/CandidateNodeSet.html" title="interface in org.apache.hadoop.yarn.server.resourcemanager.scheduler.placement"><code>CandidateNodeSet</code></a>
will be used for allocating containers.
</p>
<p>
And different set of resource requests (E.g., resource requests with the
same schedulerKey) can have one instance of AppPlacementAllocator, each
AppPlacementAllocator can have different ways to order nodes depends on
requests.
</p></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>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/AppSchedulingInfo.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler">AppSchedulingInfo</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#appSchedulingInfo">appSchedulingInfo</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>protected <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/RMContext.html" title="interface in org.apache.hadoop.yarn.server.resourcemanager">RMContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#rmContext">rmContext</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected org.apache.hadoop.yarn.server.scheduler.SchedulerRequestKey</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#schedulerRequestKey">schedulerRequestKey</a></span></code>&nbsp;</td>
</tr>
</table>
</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="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#AppPlacementAllocator--">AppPlacementAllocator</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="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract 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>abstract <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/common/ContainerRequest.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.common">ContainerRequest</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#allocate-org.apache.hadoop.yarn.server.scheduler.SchedulerRequestKey-org.apache.hadoop.yarn.server.resourcemanager.scheduler.NodeType-org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerNode-">allocate</a></span>(org.apache.hadoop.yarn.server.scheduler.SchedulerRequestKey&nbsp;schedulerKey,
<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/NodeType.html" title="enum in org.apache.hadoop.yarn.server.resourcemanager.scheduler">NodeType</a>&nbsp;type,
<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerNode.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler">SchedulerNode</a>&nbsp;node)</code>
<div class="block">Notify container allocated.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#canAllocate-org.apache.hadoop.yarn.server.resourcemanager.scheduler.NodeType-org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerNode-">canAllocate</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/NodeType.html" title="enum in org.apache.hadoop.yarn.server.resourcemanager.scheduler">NodeType</a>&nbsp;type,
<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerNode.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler">SchedulerNode</a>&nbsp;node)</code>
<div class="block">We can still have pending requirement for a given NodeType and node</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#canDelayTo-java.lang.String-">canDelayTo</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;resourceName)</code>
<div class="block">Can delay to give locality?
TODO: This should be moved out of AppPlacementAllocator
and should belong to specific delay scheduling policy impl.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>abstract int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#getOutstandingAsksCount-java.lang.String-">getOutstandingAsksCount</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;resourceName)</code>
<div class="block">Get #pending-allocations for given resourceName.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/common/PendingAsk.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.common">PendingAsk</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#getPendingAsk-java.lang.String-">getPendingAsk</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;resourceName)</code>
<div class="block">Get pending ask for given resourceName.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#getPlacementAttempt--">getPlacementAttempt</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>abstract <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html" title="type parameter in AppPlacementAllocator">N</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#getPreferredNodeIterator-org.apache.hadoop.yarn.server.resourcemanager.scheduler.placement.CandidateNodeSet-">getPreferredNodeIterator</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/CandidateNodeSet.html" title="interface in org.apache.hadoop.yarn.server.resourcemanager.scheduler.placement">CandidateNodeSet</a>&lt;<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html" title="type parameter in AppPlacementAllocator">N</a>&gt;&nbsp;candidateNodeSet)</code>
<div class="block">Get iterator of preferred node depends on requirement and/or availability.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>abstract <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/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#getPrimaryRequestedNodePartition--">getPrimaryRequestedNodePartition</a></span>()</code>
<div class="block">It is possible that one request can accept multiple node partition,
So this method returns primary node partition for pending resource /
headroom calculation.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>abstract <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>,org.apache.hadoop.yarn.api.records.ResourceRequest&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#getResourceRequests--">getResourceRequests</a></span>()</code>
<div class="block">Get pending ResourceRequests by given schedulerRequestKey</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>abstract org.apache.hadoop.yarn.api.records.SchedulingRequest</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#getSchedulingRequest--">getSchedulingRequest</a></span>()</code>
<div class="block">Get pending SchedulingRequest.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>abstract int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#getUniqueLocationAsks--">getUniqueLocationAsks</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#incrementPlacementAttempt--">incrementPlacementAttempt</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#initialize-org.apache.hadoop.yarn.server.resourcemanager.scheduler.AppSchedulingInfo-org.apache.hadoop.yarn.server.scheduler.SchedulerRequestKey-org.apache.hadoop.yarn.server.resourcemanager.RMContext-">initialize</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/AppSchedulingInfo.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler">AppSchedulingInfo</a>&nbsp;appSchedulingInfo,
org.apache.hadoop.yarn.server.scheduler.SchedulerRequestKey&nbsp;schedulerRequestKey,
<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/RMContext.html" title="interface in org.apache.hadoop.yarn.server.resourcemanager">RMContext</a>&nbsp;rmContext)</code>
<div class="block">Initialize this allocator, this will be called by Factory automatically.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#precheckNode-org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerNode-org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.SchedulingMode-">precheckNode</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerNode.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler">SchedulerNode</a>&nbsp;schedulerNode,
<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/SchedulingMode.html" title="enum in org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity">SchedulingMode</a>&nbsp;schedulingMode)</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#precheckNode-org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerNode-org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.SchedulingMode-java.util.Optional-">precheckNode</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerNode.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler">SchedulerNode</a>&nbsp;schedulerNode,
<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/SchedulingMode.html" title="enum in org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity">SchedulingMode</a>&nbsp;schedulingMode,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/activities/DiagnosticsCollector.html" title="interface in org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities">DiagnosticsCollector</a>&gt;&nbsp;dcOpt)</code>
<div class="block">Does this <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.placement"><code>AppPlacementAllocator</code></a> accept resources on given node?</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#showRequests--">showRequests</a></span>()</code>
<div class="block">Print human-readable requests to LOG debug.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>abstract <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/PendingAskUpdateResult.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.placement">PendingAskUpdateResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#updatePendingAsk-java.util.Collection-boolean-">updatePendingAsk</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.yarn.api.records.ResourceRequest&gt;&nbsp;requests,
boolean&nbsp;recoverPreemptedRequestForAContainer)</code>
<div class="block">Replace existing pending asks by the new requests</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>abstract <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/PendingAskUpdateResult.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.placement">PendingAskUpdateResult</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html#updatePendingAsk-org.apache.hadoop.yarn.server.scheduler.SchedulerRequestKey-org.apache.hadoop.yarn.api.records.SchedulingRequest-boolean-">updatePendingAsk</a></span>(org.apache.hadoop.yarn.server.scheduler.SchedulerRequestKey&nbsp;schedulerRequestKey,
org.apache.hadoop.yarn.api.records.SchedulingRequest&nbsp;schedulingRequest,
boolean&nbsp;recoverPreemptedRequestForAContainer)</code>
<div class="block">Replace existing pending asks by the new SchedulingRequest</div>
</td>
</tr>
</table>
<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">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="appSchedulingInfo">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>appSchedulingInfo</h4>
<pre>protected&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/AppSchedulingInfo.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler">AppSchedulingInfo</a> appSchedulingInfo</pre>
</li>
</ul>
<a name="schedulerRequestKey">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>schedulerRequestKey</h4>
<pre>protected&nbsp;org.apache.hadoop.yarn.server.scheduler.SchedulerRequestKey schedulerRequestKey</pre>
</li>
</ul>
<a name="rmContext">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>rmContext</h4>
<pre>protected&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/RMContext.html" title="interface in org.apache.hadoop.yarn.server.resourcemanager">RMContext</a> rmContext</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="AppPlacementAllocator--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AppPlacementAllocator</h4>
<pre>public&nbsp;AppPlacementAllocator()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getPreferredNodeIterator-org.apache.hadoop.yarn.server.resourcemanager.scheduler.placement.CandidateNodeSet-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPreferredNodeIterator</h4>
<pre>public abstract&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html" title="type parameter in AppPlacementAllocator">N</a>&gt;&nbsp;getPreferredNodeIterator(<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/CandidateNodeSet.html" title="interface in org.apache.hadoop.yarn.server.resourcemanager.scheduler.placement">CandidateNodeSet</a>&lt;<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html" title="type parameter in AppPlacementAllocator">N</a>&gt;&nbsp;candidateNodeSet)</pre>
<div class="block">Get iterator of preferred node depends on requirement and/or availability.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>candidateNodeSet</code> - input CandidateNodeSet</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>iterator of preferred node</dd>
</dl>
</li>
</ul>
<a name="updatePendingAsk-java.util.Collection-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updatePendingAsk</h4>
<pre>public abstract&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/PendingAskUpdateResult.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.placement">PendingAskUpdateResult</a>&nbsp;updatePendingAsk(<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.yarn.api.records.ResourceRequest&gt;&nbsp;requests,
boolean&nbsp;recoverPreemptedRequestForAContainer)</pre>
<div class="block">Replace existing pending asks by the new requests</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>requests</code> - new asks</dd>
<dd><code>recoverPreemptedRequestForAContainer</code> - if we're recovering resource
requests for preempted container</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if total pending resource changed</dd>
</dl>
</li>
</ul>
<a name="updatePendingAsk-org.apache.hadoop.yarn.server.scheduler.SchedulerRequestKey-org.apache.hadoop.yarn.api.records.SchedulingRequest-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updatePendingAsk</h4>
<pre>public abstract&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/PendingAskUpdateResult.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.placement">PendingAskUpdateResult</a>&nbsp;updatePendingAsk(org.apache.hadoop.yarn.server.scheduler.SchedulerRequestKey&nbsp;schedulerRequestKey,
org.apache.hadoop.yarn.api.records.SchedulingRequest&nbsp;schedulingRequest,
boolean&nbsp;recoverPreemptedRequestForAContainer)</pre>
<div class="block">Replace existing pending asks by the new SchedulingRequest</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>schedulerRequestKey</code> - scheduler request key</dd>
<dd><code>schedulingRequest</code> - new asks</dd>
<dd><code>recoverPreemptedRequestForAContainer</code> - if we're recovering resource
requests for preempted container</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if total pending resource changed</dd>
</dl>
</li>
</ul>
<a name="getResourceRequests--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResourceRequests</h4>
<pre>public abstract&nbsp;<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>,org.apache.hadoop.yarn.api.records.ResourceRequest&gt;&nbsp;getResourceRequests()</pre>
<div class="block">Get pending ResourceRequests by given schedulerRequestKey</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map of resourceName to ResourceRequest</dd>
</dl>
</li>
</ul>
<a name="getPendingAsk-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPendingAsk</h4>
<pre>public abstract&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/common/PendingAsk.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.common">PendingAsk</a>&nbsp;getPendingAsk(<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;resourceName)</pre>
<div class="block">Get pending ask for given resourceName. If there's no such pendingAsk,
returns <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/common/PendingAsk.html#ZERO"><code>PendingAsk.ZERO</code></a></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>resourceName</code> - resourceName</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>PendingAsk</dd>
</dl>
</li>
</ul>
<a name="getOutstandingAsksCount-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getOutstandingAsksCount</h4>
<pre>public abstract&nbsp;int&nbsp;getOutstandingAsksCount(<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;resourceName)</pre>
<div class="block">Get #pending-allocations for given resourceName. If there's no such
pendingAsk, returns 0</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>resourceName</code> - resourceName</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>#pending-allocations</dd>
</dl>
</li>
</ul>
<a name="allocate-org.apache.hadoop.yarn.server.scheduler.SchedulerRequestKey-org.apache.hadoop.yarn.server.resourcemanager.scheduler.NodeType-org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allocate</h4>
<pre>public abstract&nbsp;<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/common/ContainerRequest.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.common">ContainerRequest</a>&nbsp;allocate(org.apache.hadoop.yarn.server.scheduler.SchedulerRequestKey&nbsp;schedulerKey,
<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/NodeType.html" title="enum in org.apache.hadoop.yarn.server.resourcemanager.scheduler">NodeType</a>&nbsp;type,
<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerNode.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler">SchedulerNode</a>&nbsp;node)</pre>
<div class="block">Notify container allocated.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>schedulerKey</code> - SchedulerRequestKey for this ResourceRequest</dd>
<dd><code>type</code> - Type of the allocation</dd>
<dd><code>node</code> - Which node this container allocated on</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>ContainerRequest which include resource requests associated with
the container. This will be used by scheduler to recover requests.
Please refer to <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/common/ContainerRequest.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.common"><code>ContainerRequest</code></a> for more details.</dd>
</dl>
</li>
</ul>
<a name="canAllocate-org.apache.hadoop.yarn.server.resourcemanager.scheduler.NodeType-org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canAllocate</h4>
<pre>public abstract&nbsp;boolean&nbsp;canAllocate(<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/NodeType.html" title="enum in org.apache.hadoop.yarn.server.resourcemanager.scheduler">NodeType</a>&nbsp;type,
<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerNode.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler">SchedulerNode</a>&nbsp;node)</pre>
<div class="block">We can still have pending requirement for a given NodeType and node</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>type</code> - Locality Type</dd>
<dd><code>node</code> - which node we will allocate on</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if we has pending requirement</dd>
</dl>
</li>
</ul>
<a name="canDelayTo-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>canDelayTo</h4>
<pre>public abstract&nbsp;boolean&nbsp;canDelayTo(<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;resourceName)</pre>
<div class="block">Can delay to give locality?
TODO: This should be moved out of AppPlacementAllocator
and should belong to specific delay scheduling policy impl.
See YARN-7457 for more details.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>resourceName</code> - resourceName</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>can/cannot</dd>
</dl>
</li>
</ul>
<a name="precheckNode-org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerNode-org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.SchedulingMode-java.util.Optional-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>precheckNode</h4>
<pre>public abstract&nbsp;boolean&nbsp;precheckNode(<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerNode.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler">SchedulerNode</a>&nbsp;schedulerNode,
<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/SchedulingMode.html" title="enum in org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity">SchedulingMode</a>&nbsp;schedulingMode,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Optional.html?is-external=true" title="class or interface in java.util">Optional</a>&lt;<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/activities/DiagnosticsCollector.html" title="interface in org.apache.hadoop.yarn.server.resourcemanager.scheduler.activities">DiagnosticsCollector</a>&gt;&nbsp;dcOpt)</pre>
<div class="block">Does this <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.placement"><code>AppPlacementAllocator</code></a> accept resources on given node?</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>schedulerNode</code> - schedulerNode</dd>
<dd><code>schedulingMode</code> - schedulingMode</dd>
<dd><code>dcOpt</code> - optional diagnostics collector</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>accepted/not</dd>
</dl>
</li>
</ul>
<a name="precheckNode-org.apache.hadoop.yarn.server.resourcemanager.scheduler.SchedulerNode-org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity.SchedulingMode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>precheckNode</h4>
<pre>public abstract&nbsp;boolean&nbsp;precheckNode(<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/SchedulerNode.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler">SchedulerNode</a>&nbsp;schedulerNode,
<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/capacity/SchedulingMode.html" title="enum in org.apache.hadoop.yarn.server.resourcemanager.scheduler.capacity">SchedulingMode</a>&nbsp;schedulingMode)</pre>
</li>
</ul>
<a name="getPrimaryRequestedNodePartition--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPrimaryRequestedNodePartition</h4>
<pre>public abstract&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;getPrimaryRequestedNodePartition()</pre>
<div class="block">It is possible that one request can accept multiple node partition,
So this method returns primary node partition for pending resource /
headroom calculation.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>primary requested node partition</dd>
</dl>
</li>
</ul>
<a name="getUniqueLocationAsks--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUniqueLocationAsks</h4>
<pre>public abstract&nbsp;int&nbsp;getUniqueLocationAsks()</pre>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>number of unique location asks with #pending greater than 0,
(like /rack1, host1, etc.).
TODO: This should be moved out of AppPlacementAllocator
and should belong to specific delay scheduling policy impl.
See YARN-7457 for more details.</dd>
</dl>
</li>
</ul>
<a name="showRequests--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>showRequests</h4>
<pre>public abstract&nbsp;void&nbsp;showRequests()</pre>
<div class="block">Print human-readable requests to LOG debug.</div>
</li>
</ul>
<a name="initialize-org.apache.hadoop.yarn.server.resourcemanager.scheduler.AppSchedulingInfo-org.apache.hadoop.yarn.server.scheduler.SchedulerRequestKey-org.apache.hadoop.yarn.server.resourcemanager.RMContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>initialize</h4>
<pre>public&nbsp;void&nbsp;initialize(<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/AppSchedulingInfo.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler">AppSchedulingInfo</a>&nbsp;appSchedulingInfo,
org.apache.hadoop.yarn.server.scheduler.SchedulerRequestKey&nbsp;schedulerRequestKey,
<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/RMContext.html" title="interface in org.apache.hadoop.yarn.server.resourcemanager">RMContext</a>&nbsp;rmContext)</pre>
<div class="block">Initialize this allocator, this will be called by Factory automatically.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>appSchedulingInfo</code> - appSchedulingInfo</dd>
<dd><code>schedulerRequestKey</code> - schedulerRequestKey</dd>
<dd><code>rmContext</code> - rmContext</dd>
</dl>
</li>
</ul>
<a name="getSchedulingRequest--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getSchedulingRequest</h4>
<pre>public abstract&nbsp;org.apache.hadoop.yarn.api.records.SchedulingRequest&nbsp;getSchedulingRequest()</pre>
<div class="block">Get pending SchedulingRequest.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>SchedulingRequest</dd>
</dl>
</li>
</ul>
<a name="getPlacementAttempt--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPlacementAttempt</h4>
<pre>public&nbsp;int&nbsp;getPlacementAttempt()</pre>
</li>
</ul>
<a name="incrementPlacementAttempt--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>incrementPlacementAttempt</h4>
<pre>public&nbsp;void&nbsp;incrementPlacementAttempt()</pre>
</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/AppPlacementAllocator.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>Prev&nbsp;Class</li>
<li><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/CandidateNodeSet.html" title="interface in org.apache.hadoop.yarn.server.resourcemanager.scheduler.placement"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../../index.html?org/apache/hadoop/yarn/server/resourcemanager/scheduler/placement/AppPlacementAllocator.html" target="_top">Frames</a></li>
<li><a href="AppPlacementAllocator.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="#field.summary">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><a href="#field.detail">Field</a>&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>