blob: e71e5186a7706d1b7814915644a1b0c497bd352b [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:13 GMT 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Schedulable (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="Schedulable (Apache Hadoop YARN ResourceManager 3.3.1 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/Schedulable.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/yarn/server/resourcemanager/scheduler/fair/ReservationQueueConfiguration.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/SchedulingPolicy.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair"><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/fair/Schedulable.html" target="_top">Frames</a></li>
<li><a href="Schedulable.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>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&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.fair</div>
<h2 title="Interface Schedulable" class="title">Interface Schedulable</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FSAppAttempt.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair">FSAppAttempt</a>, <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FSLeafQueue.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair">FSLeafQueue</a>, <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FSParentQueue.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair">FSParentQueue</a>, <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FSQueue.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair">FSQueue</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Private
@InterfaceStability.Unstable
public interface <span class="typeNameLabel">Schedulable</span></pre>
<div class="block">A Schedulable represents an entity that can be scheduled such as an
application or a queue. It provides a common interface so that algorithms
such as fair sharing can be applied both within a queue and across queues.
A Schedulable is responsible for three roles:
1) Assign resources through <a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/Schedulable.html#assignContainer-org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSSchedulerNode-"><code>assignContainer(org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSSchedulerNode)</code></a>.
2) It provides information about the app/queue to the scheduler, including:
- Demand (maximum number of tasks required)
- Minimum share (for queues)
- Job/queue weight (for fair sharing)
- Start time and priority (for FIFO)
3) It can be assigned a fair share, for use with fair scheduling.
Schedulable also contains two methods for performing scheduling computations:
- updateDemand() is called periodically to compute the demand of the various
jobs and queues, which may be expensive (e.g. jobs must iterate through all
their tasks to count failed tasks, tasks that can be speculated, etc).</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== 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></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>org.apache.hadoop.yarn.api.records.Resource</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/Schedulable.html#assignContainer-org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSSchedulerNode-">assignContainer</a></span>(<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FSSchedulerNode.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair">FSSchedulerNode</a>&nbsp;node)</code>
<div class="block">Assign a container on this node if possible, and return the amount of
resources assigned.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>org.apache.hadoop.yarn.api.records.Resource</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/Schedulable.html#getDemand--">getDemand</a></span>()</code>
<div class="block">Maximum number of resources required by this Schedulable.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>org.apache.hadoop.yarn.api.records.Resource</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/Schedulable.html#getFairShare--">getFairShare</a></span>()</code>
<div class="block">Get the fair share assigned to this Schedulable.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>org.apache.hadoop.yarn.api.records.Resource</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/Schedulable.html#getMaxShare--">getMaxShare</a></span>()</code>
<div class="block">Maximum Resource share assigned to the schedulable.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>org.apache.hadoop.yarn.api.records.Resource</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/Schedulable.html#getMinShare--">getMinShare</a></span>()</code>
<div class="block">Minimum Resource share assigned to the schedulable.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><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/fair/Schedulable.html#getName--">getName</a></span>()</code>
<div class="block">Name of job/queue, used for debugging as well as for breaking ties in
scheduling order deterministically.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>org.apache.hadoop.yarn.api.records.Priority</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/Schedulable.html#getPriority--">getPriority</a></span>()</code>
<div class="block">Job priority for jobs in FIFO queues; meaningless for QueueSchedulables.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>org.apache.hadoop.yarn.api.records.Resource</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/Schedulable.html#getResourceUsage--">getResourceUsage</a></span>()</code>
<div class="block">Get the aggregate amount of resources consumed by the schedulable.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/Schedulable.html#getStartTime--">getStartTime</a></span>()</code>
<div class="block">Start time for jobs in FIFO queues; meaningless for QueueSchedulables.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/Schedulable.html#getWeight--">getWeight</a></span>()</code>
<div class="block">Job/queue weight in fair sharing.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/Schedulable.html#isPreemptable--">isPreemptable</a></span>()</code>
<div class="block">Check whether the schedulable is preemptable.</div>
</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/fair/Schedulable.html#setFairShare-org.apache.hadoop.yarn.api.records.Resource-">setFairShare</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;fairShare)</code>
<div class="block">Assign a fair share to this Schedulable.</div>
</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/fair/Schedulable.html#updateDemand--">updateDemand</a></span>()</code>
<div class="block">Refresh the Schedulable's demand and those of its children if any.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getName</h4>
<pre><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;getName()</pre>
<div class="block">Name of job/queue, used for debugging as well as for breaking ties in
scheduling order deterministically.</div>
</li>
</ul>
<a name="getDemand--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDemand</h4>
<pre>org.apache.hadoop.yarn.api.records.Resource&nbsp;getDemand()</pre>
<div class="block">Maximum number of resources required by this Schedulable. This is defined as
number of currently utilized resources + number of unlaunched resources (that
are either not yet launched or need to be speculated).</div>
</li>
</ul>
<a name="getResourceUsage--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResourceUsage</h4>
<pre>org.apache.hadoop.yarn.api.records.Resource&nbsp;getResourceUsage()</pre>
<div class="block">Get the aggregate amount of resources consumed by the schedulable.</div>
</li>
</ul>
<a name="getMinShare--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMinShare</h4>
<pre>org.apache.hadoop.yarn.api.records.Resource&nbsp;getMinShare()</pre>
<div class="block">Minimum Resource share assigned to the schedulable.</div>
</li>
</ul>
<a name="getMaxShare--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxShare</h4>
<pre>org.apache.hadoop.yarn.api.records.Resource&nbsp;getMaxShare()</pre>
<div class="block">Maximum Resource share assigned to the schedulable.</div>
</li>
</ul>
<a name="getWeight--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getWeight</h4>
<pre>float&nbsp;getWeight()</pre>
<div class="block">Job/queue weight in fair sharing. Weights are only meaningful when
compared. A weight of 2.0f has twice the weight of a weight of 1.0f,
which has twice the weight of a weight of 0.5f. A weight of 1.0f is
considered unweighted or a neutral weight. A weight of 0 is no weight.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the weight</dd>
</dl>
</li>
</ul>
<a name="getStartTime--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getStartTime</h4>
<pre>long&nbsp;getStartTime()</pre>
<div class="block">Start time for jobs in FIFO queues; meaningless for QueueSchedulables.</div>
</li>
</ul>
<a name="getPriority--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPriority</h4>
<pre>org.apache.hadoop.yarn.api.records.Priority&nbsp;getPriority()</pre>
<div class="block">Job priority for jobs in FIFO queues; meaningless for QueueSchedulables.</div>
</li>
</ul>
<a name="updateDemand--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateDemand</h4>
<pre>void&nbsp;updateDemand()</pre>
<div class="block">Refresh the Schedulable's demand and those of its children if any.</div>
</li>
</ul>
<a name="assignContainer-org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FSSchedulerNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>assignContainer</h4>
<pre>org.apache.hadoop.yarn.api.records.Resource&nbsp;assignContainer(<a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/FSSchedulerNode.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair">FSSchedulerNode</a>&nbsp;node)</pre>
<div class="block">Assign a container on this node if possible, and return the amount of
resources assigned.</div>
</li>
</ul>
<a name="getFairShare--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFairShare</h4>
<pre>org.apache.hadoop.yarn.api.records.Resource&nbsp;getFairShare()</pre>
<div class="block">Get the fair share assigned to this Schedulable.</div>
</li>
</ul>
<a name="setFairShare-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFairShare</h4>
<pre>void&nbsp;setFairShare(org.apache.hadoop.yarn.api.records.Resource&nbsp;fairShare)</pre>
<div class="block">Assign a fair share to this Schedulable.</div>
</li>
</ul>
<a name="isPreemptable--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isPreemptable</h4>
<pre>boolean&nbsp;isPreemptable()</pre>
<div class="block">Check whether the schedulable is preemptable.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>true</code> if the schedulable is preemptable;
<code>false</code> otherwise</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/Schedulable.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/yarn/server/resourcemanager/scheduler/fair/ReservationQueueConfiguration.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../../org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/SchedulingPolicy.html" title="class in org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair"><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/fair/Schedulable.html" target="_top">Frames</a></li>
<li><a href="Schedulable.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>Field&nbsp;|&nbsp;</li>
<li>Constr&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>Constr&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>