blob: 1c4bca7513d502410509f4082c8549313212636c [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:10:05 GMT 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>DominantResourceCalculator (Apache Hadoop YARN Common 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="DominantResourceCalculator (Apache Hadoop YARN Common 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,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":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/DominantResourceCalculator.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/util/resource/DefaultResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.html" target="_top">Frames</a></li>
<li><a href="DominantResourceCalculator.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><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.yarn.util.resource</div>
<h2 title="Class DominantResourceCalculator" class="title">Class DominantResourceCalculator</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><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">org.apache.hadoop.yarn.util.resource.ResourceCalculator</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.yarn.util.resource.DominantResourceCalculator</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>@InterfaceAudience.Private
@InterfaceStability.Unstable
public class <span class="typeNameLabel">DominantResourceCalculator</span>
extends <a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></pre>
<div class="block">A <a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource"><code>ResourceCalculator</code></a> which uses the concept of
<em>dominant resource</em> to compare multi-dimensional resources.
Essentially the idea is that the in a multi-resource environment,
the resource allocation should be determined by the dominant share
of an entity (user or queue), which is the maximum share that the
entity has been allocated of any resource.
In a nutshell, it seeks to maximize the minimum dominant share across
all entities.
For example, if user A runs CPU-heavy tasks and user B runs
memory-heavy tasks, it attempts to equalize CPU share of user A
with Memory-share of user B.
In the single resource case, it reduces to max-min fairness for that resource.
See the Dominant Resource Fairness paper for more details:
www.cs.berkeley.edu/~matei/papers/2011/nsdi_drf.pdf</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== 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/util/resource/DominantResourceCalculator.html#DominantResourceCalculator--">DominantResourceCalculator</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>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.html#compare-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-boolean-">compare</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;clusterResource,
org.apache.hadoop.yarn.api.records.Resource&nbsp;lhs,
org.apache.hadoop.yarn.api.records.Resource&nbsp;rhs,
boolean&nbsp;singleType)</code>
<div class="block">On a cluster with capacity <code>clusterResource</code>, compare <code>lhs</code>
and <code>rhs</code>.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.html#computeAvailableContainers-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">computeAvailableContainers</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;available,
org.apache.hadoop.yarn.api.records.Resource&nbsp;required)</code>
<div class="block">Compute the number of containers which can be allocated given
<code>available</code> and <code>required</code> resources.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.html#divide-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">divide</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;clusterResource,
org.apache.hadoop.yarn.api.records.Resource&nbsp;numerator,
org.apache.hadoop.yarn.api.records.Resource&nbsp;denominator)</code>
<div class="block">Divide resource <code>numerator</code> by resource <code>denominator</code>
using specified policy (domination, average, fairness etc.); hence overall
<code>clusterResource</code> is provided for context.</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/util/resource/DominantResourceCalculator.html#divideAndCeil-org.apache.hadoop.yarn.api.records.Resource-float-">divideAndCeil</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;numerator,
float&nbsp;denominator)</code>
<div class="block">Divide-and-ceil <code>numerator</code> by <code>denominator</code>.</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/util/resource/DominantResourceCalculator.html#divideAndCeil-org.apache.hadoop.yarn.api.records.Resource-int-">divideAndCeil</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;numerator,
int&nbsp;denominator)</code>
<div class="block">Divide-and-ceil <code>numerator</code> by <code>denominator</code>.</div>
</td>
</tr>
<tr id="i5" 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/util/resource/DominantResourceCalculator.html#divideAndCeil-org.apache.hadoop.yarn.api.records.Resource-long-">divideAndCeil</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;numerator,
long&nbsp;denominator)</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.html#fitsIn-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">fitsIn</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;smaller,
org.apache.hadoop.yarn.api.records.Resource&nbsp;bigger)</code>
<div class="block">Check if a smaller resource can be contained by bigger resource.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><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;<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>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.html#getInsufficientResourceNames-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">getInsufficientResourceNames</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;required,
org.apache.hadoop.yarn.api.records.Resource&nbsp;available)</code>
<div class="block">Get insufficient resource names via comparing required resource and
capacity resource.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.html#isAllInvalidDivisor-org.apache.hadoop.yarn.api.records.Resource-">isAllInvalidDivisor</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;r)</code>
<div class="block">Determine if all resources are zero.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.html#isAnyMajorResourceAboveZero-org.apache.hadoop.yarn.api.records.Resource-">isAnyMajorResourceAboveZero</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;resource)</code>
<div class="block">Check if resource has any major resource types (which are all NodeManagers
included) has a &gt; 0 value.</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/util/resource/DominantResourceCalculator.html#isAnyMajorResourceZeroOrNegative-org.apache.hadoop.yarn.api.records.Resource-">isAnyMajorResourceZeroOrNegative</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;resource)</code>
<div class="block">Check if resource has any major resource types (which are all NodeManagers
included) a zero value or negative value.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.html#isInvalidDivisor-org.apache.hadoop.yarn.api.records.Resource-">isInvalidDivisor</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;r)</code>
<div class="block">Determine if a resource is not suitable for use as a divisor
(will result in divide by 0, etc)</div>
</td>
</tr>
<tr id="i12" 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/util/resource/DominantResourceCalculator.html#multiplyAndNormalizeDown-org.apache.hadoop.yarn.api.records.Resource-double-org.apache.hadoop.yarn.api.records.Resource-">multiplyAndNormalizeDown</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;r,
double&nbsp;by,
org.apache.hadoop.yarn.api.records.Resource&nbsp;stepFactor)</code>
<div class="block">Multiply resource <code>r</code> by factor <code>by</code>
and normalize down using step-factor <code>stepFactor</code>.</div>
</td>
</tr>
<tr id="i13" 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/util/resource/DominantResourceCalculator.html#multiplyAndNormalizeUp-org.apache.hadoop.yarn.api.records.Resource-double:A-org.apache.hadoop.yarn.api.records.Resource-">multiplyAndNormalizeUp</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;r,
double[]&nbsp;by,
org.apache.hadoop.yarn.api.records.Resource&nbsp;stepFactor)</code>
<div class="block">Multiply resource <code>r</code> by factor <code>by</code>
and normalize up using step-factor <code>stepFactor</code>.</div>
</td>
</tr>
<tr id="i14" 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/util/resource/DominantResourceCalculator.html#multiplyAndNormalizeUp-org.apache.hadoop.yarn.api.records.Resource-double-org.apache.hadoop.yarn.api.records.Resource-">multiplyAndNormalizeUp</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;r,
double&nbsp;by,
org.apache.hadoop.yarn.api.records.Resource&nbsp;stepFactor)</code>
<div class="block">Multiply resource <code>r</code> by factor <code>by</code>
and normalize up using step-factor <code>stepFactor</code>.</div>
</td>
</tr>
<tr id="i15" 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/util/resource/DominantResourceCalculator.html#normalize-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">normalize</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;r,
org.apache.hadoop.yarn.api.records.Resource&nbsp;minimumResource,
org.apache.hadoop.yarn.api.records.Resource&nbsp;maximumResource,
org.apache.hadoop.yarn.api.records.Resource&nbsp;stepFactor)</code>
<div class="block">Normalize resource <code>r</code> given the base
<code>minimumResource</code> and verify against max allowed
<code>maximumResource</code> using a step factor for the normalization.</div>
</td>
</tr>
<tr id="i16" 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/util/resource/DominantResourceCalculator.html#normalizeDown-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">normalizeDown</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;r,
org.apache.hadoop.yarn.api.records.Resource&nbsp;stepFactor)</code>
<div class="block">Get resource <code>r</code>and normalize down using step-factor
<code>stepFactor</code>.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.html#ratio-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">ratio</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;a,
org.apache.hadoop.yarn.api.records.Resource&nbsp;b)</code>
<div class="block">Ratio of resource <code>a</code> to resource <code>b</code>.</div>
</td>
</tr>
<tr id="i18" 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/util/resource/DominantResourceCalculator.html#roundDown-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">roundDown</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;r,
org.apache.hadoop.yarn.api.records.Resource&nbsp;stepFactor)</code>
<div class="block">Round-down resource <code>r</code> given factor <code>stepFactor</code>.</div>
</td>
</tr>
<tr id="i19" 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/util/resource/DominantResourceCalculator.html#roundUp-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">roundUp</a></span>(org.apache.hadoop.yarn.api.records.Resource&nbsp;r,
org.apache.hadoop.yarn.api.records.Resource&nbsp;stepFactor)</code>
<div class="block">Round-up resource <code>r</code> given factor <code>stepFactor</code>.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.yarn.util.resource.ResourceCalculator">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.yarn.util.resource.<a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></h3>
<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#compare-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">compare</a>, <a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#divideAndCeil-int-float-">divideAndCeil</a>, <a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#divideAndCeil-int-int-">divideAndCeil</a>, <a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#divideAndCeil-long-float-">divideAndCeil</a>, <a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#divideAndCeil-long-long-">divideAndCeil</a>, <a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#divideSafelyAsFloat-long-long-">divideSafelyAsFloat</a>, <a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#roundDown-int-int-">roundDown</a>, <a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#roundDown-long-long-">roundDown</a>, <a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#roundUp-int-int-">roundUp</a>, <a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#roundUp-long-long-">roundUp</a></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="DominantResourceCalculator--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DominantResourceCalculator</h4>
<pre>public&nbsp;DominantResourceCalculator()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="compare-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>compare</h4>
<pre>public&nbsp;int&nbsp;compare(org.apache.hadoop.yarn.api.records.Resource&nbsp;clusterResource,
org.apache.hadoop.yarn.api.records.Resource&nbsp;lhs,
org.apache.hadoop.yarn.api.records.Resource&nbsp;rhs,
boolean&nbsp;singleType)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#compare-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-boolean-">ResourceCalculator</a></code></span></div>
<div class="block">On a cluster with capacity <code>clusterResource</code>, compare <code>lhs</code>
and <code>rhs</code>. Consider all resources unless <code>singleType</code> is set
to true. When <code>singleType</code> is set to true, consider only one
resource as per the <a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource"><code>ResourceCalculator</code></a> implementation; the
<a href="../../../../../../org/apache/hadoop/yarn/util/resource/DefaultResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource"><code>DefaultResourceCalculator</code></a> considers memory and
<a href="../../../../../../org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource"><code>DominantResourceCalculator</code></a> considers the dominant resource.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#compare-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-boolean-">compare</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clusterResource</code> - cluster capacity</dd>
<dd><code>lhs</code> - First <code>Resource</code> to compare</dd>
<dd><code>rhs</code> - Second <code>Resource</code> to compare</dd>
<dd><code>singleType</code> - Whether to consider a single resource type or all
resource types</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>-1 if <code>lhs</code> is smaller, 0 if equal and 1 if it is larger</dd>
</dl>
</li>
</ul>
<a name="computeAvailableContainers-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>computeAvailableContainers</h4>
<pre>public&nbsp;long&nbsp;computeAvailableContainers(org.apache.hadoop.yarn.api.records.Resource&nbsp;available,
org.apache.hadoop.yarn.api.records.Resource&nbsp;required)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#computeAvailableContainers-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">ResourceCalculator</a></code></span></div>
<div class="block">Compute the number of containers which can be allocated given
<code>available</code> and <code>required</code> resources.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#computeAvailableContainers-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">computeAvailableContainers</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>available</code> - available resources</dd>
<dd><code>required</code> - required resources</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>number of containers which can be allocated</dd>
</dl>
</li>
</ul>
<a name="divide-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>divide</h4>
<pre>public&nbsp;float&nbsp;divide(org.apache.hadoop.yarn.api.records.Resource&nbsp;clusterResource,
org.apache.hadoop.yarn.api.records.Resource&nbsp;numerator,
org.apache.hadoop.yarn.api.records.Resource&nbsp;denominator)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#divide-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">ResourceCalculator</a></code></span></div>
<div class="block">Divide resource <code>numerator</code> by resource <code>denominator</code>
using specified policy (domination, average, fairness etc.); hence overall
<code>clusterResource</code> is provided for context.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#divide-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">divide</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>clusterResource</code> - cluster resources</dd>
<dd><code>numerator</code> - numerator</dd>
<dd><code>denominator</code> - denominator</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>numerator</code>/<code>denominator</code>
using specific policy</dd>
</dl>
</li>
</ul>
<a name="isInvalidDivisor-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isInvalidDivisor</h4>
<pre>public&nbsp;boolean&nbsp;isInvalidDivisor(org.apache.hadoop.yarn.api.records.Resource&nbsp;r)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#isInvalidDivisor-org.apache.hadoop.yarn.api.records.Resource-">ResourceCalculator</a></code></span></div>
<div class="block">Determine if a resource is not suitable for use as a divisor
(will result in divide by 0, etc)</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#isInvalidDivisor-org.apache.hadoop.yarn.api.records.Resource-">isInvalidDivisor</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>r</code> - resource</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if divisor is invalid (should not be used), false else</dd>
</dl>
</li>
</ul>
<a name="isAllInvalidDivisor-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAllInvalidDivisor</h4>
<pre>public&nbsp;boolean&nbsp;isAllInvalidDivisor(org.apache.hadoop.yarn.api.records.Resource&nbsp;r)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#isAllInvalidDivisor-org.apache.hadoop.yarn.api.records.Resource-">ResourceCalculator</a></code></span></div>
<div class="block">Determine if all resources are zero.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#isAllInvalidDivisor-org.apache.hadoop.yarn.api.records.Resource-">isAllInvalidDivisor</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>r</code> - resource</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>true if all divisors are invalid (should not be used), false else</dd>
</dl>
</li>
</ul>
<a name="ratio-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>ratio</h4>
<pre>public&nbsp;float&nbsp;ratio(org.apache.hadoop.yarn.api.records.Resource&nbsp;a,
org.apache.hadoop.yarn.api.records.Resource&nbsp;b)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#ratio-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">ResourceCalculator</a></code></span></div>
<div class="block">Ratio of resource <code>a</code> to resource <code>b</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#ratio-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">ratio</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>a</code> - resource</dd>
<dd><code>b</code> - resource</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>ratio of resource <code>a</code> to resource <code>b</code></dd>
</dl>
</li>
</ul>
<a name="divideAndCeil-org.apache.hadoop.yarn.api.records.Resource-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>divideAndCeil</h4>
<pre>public&nbsp;org.apache.hadoop.yarn.api.records.Resource&nbsp;divideAndCeil(org.apache.hadoop.yarn.api.records.Resource&nbsp;numerator,
int&nbsp;denominator)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#divideAndCeil-org.apache.hadoop.yarn.api.records.Resource-int-">ResourceCalculator</a></code></span></div>
<div class="block">Divide-and-ceil <code>numerator</code> by <code>denominator</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#divideAndCeil-org.apache.hadoop.yarn.api.records.Resource-int-">divideAndCeil</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>numerator</code> - numerator resource</dd>
<dd><code>denominator</code> - denominator</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>resultant resource</dd>
</dl>
</li>
</ul>
<a name="divideAndCeil-org.apache.hadoop.yarn.api.records.Resource-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>divideAndCeil</h4>
<pre>public&nbsp;org.apache.hadoop.yarn.api.records.Resource&nbsp;divideAndCeil(org.apache.hadoop.yarn.api.records.Resource&nbsp;numerator,
long&nbsp;denominator)</pre>
</li>
</ul>
<a name="divideAndCeil-org.apache.hadoop.yarn.api.records.Resource-float-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>divideAndCeil</h4>
<pre>public&nbsp;org.apache.hadoop.yarn.api.records.Resource&nbsp;divideAndCeil(org.apache.hadoop.yarn.api.records.Resource&nbsp;numerator,
float&nbsp;denominator)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#divideAndCeil-org.apache.hadoop.yarn.api.records.Resource-float-">ResourceCalculator</a></code></span></div>
<div class="block">Divide-and-ceil <code>numerator</code> by <code>denominator</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#divideAndCeil-org.apache.hadoop.yarn.api.records.Resource-float-">divideAndCeil</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>numerator</code> - numerator resource</dd>
<dd><code>denominator</code> - denominator</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>resultant resource</dd>
</dl>
</li>
</ul>
<a name="normalize-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>normalize</h4>
<pre>public&nbsp;org.apache.hadoop.yarn.api.records.Resource&nbsp;normalize(org.apache.hadoop.yarn.api.records.Resource&nbsp;r,
org.apache.hadoop.yarn.api.records.Resource&nbsp;minimumResource,
org.apache.hadoop.yarn.api.records.Resource&nbsp;maximumResource,
org.apache.hadoop.yarn.api.records.Resource&nbsp;stepFactor)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#normalize-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">ResourceCalculator</a></code></span></div>
<div class="block">Normalize resource <code>r</code> given the base
<code>minimumResource</code> and verify against max allowed
<code>maximumResource</code> using a step factor for the normalization.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#normalize-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">normalize</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>r</code> - resource</dd>
<dd><code>minimumResource</code> - minimum value</dd>
<dd><code>maximumResource</code> - the upper bound of the resource to be allocated</dd>
<dd><code>stepFactor</code> - the increment for resources to be allocated</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>normalized resource</dd>
</dl>
</li>
</ul>
<a name="roundUp-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>roundUp</h4>
<pre>public&nbsp;org.apache.hadoop.yarn.api.records.Resource&nbsp;roundUp(org.apache.hadoop.yarn.api.records.Resource&nbsp;r,
org.apache.hadoop.yarn.api.records.Resource&nbsp;stepFactor)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#roundUp-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">ResourceCalculator</a></code></span></div>
<div class="block">Round-up resource <code>r</code> given factor <code>stepFactor</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#roundUp-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">roundUp</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>r</code> - resource</dd>
<dd><code>stepFactor</code> - step-factor</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>rounded resource</dd>
</dl>
</li>
</ul>
<a name="roundDown-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>roundDown</h4>
<pre>public&nbsp;org.apache.hadoop.yarn.api.records.Resource&nbsp;roundDown(org.apache.hadoop.yarn.api.records.Resource&nbsp;r,
org.apache.hadoop.yarn.api.records.Resource&nbsp;stepFactor)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#roundDown-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">ResourceCalculator</a></code></span></div>
<div class="block">Round-down resource <code>r</code> given factor <code>stepFactor</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#roundDown-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">roundDown</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>r</code> - resource</dd>
<dd><code>stepFactor</code> - step-factor</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>rounded resource</dd>
</dl>
</li>
</ul>
<a name="multiplyAndNormalizeUp-org.apache.hadoop.yarn.api.records.Resource-double:A-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>multiplyAndNormalizeUp</h4>
<pre>public&nbsp;org.apache.hadoop.yarn.api.records.Resource&nbsp;multiplyAndNormalizeUp(org.apache.hadoop.yarn.api.records.Resource&nbsp;r,
double[]&nbsp;by,
org.apache.hadoop.yarn.api.records.Resource&nbsp;stepFactor)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#multiplyAndNormalizeUp-org.apache.hadoop.yarn.api.records.Resource-double:A-org.apache.hadoop.yarn.api.records.Resource-">ResourceCalculator</a></code></span></div>
<div class="block">Multiply resource <code>r</code> by factor <code>by</code>
and normalize up using step-factor <code>stepFactor</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#multiplyAndNormalizeUp-org.apache.hadoop.yarn.api.records.Resource-double:A-org.apache.hadoop.yarn.api.records.Resource-">multiplyAndNormalizeUp</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>r</code> - resource to be multiplied</dd>
<dd><code>by</code> - multiplier array for all resource types</dd>
<dd><code>stepFactor</code> - factor by which to normalize up</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>resulting normalized resource</dd>
</dl>
</li>
</ul>
<a name="multiplyAndNormalizeUp-org.apache.hadoop.yarn.api.records.Resource-double-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>multiplyAndNormalizeUp</h4>
<pre>public&nbsp;org.apache.hadoop.yarn.api.records.Resource&nbsp;multiplyAndNormalizeUp(org.apache.hadoop.yarn.api.records.Resource&nbsp;r,
double&nbsp;by,
org.apache.hadoop.yarn.api.records.Resource&nbsp;stepFactor)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#multiplyAndNormalizeUp-org.apache.hadoop.yarn.api.records.Resource-double-org.apache.hadoop.yarn.api.records.Resource-">ResourceCalculator</a></code></span></div>
<div class="block">Multiply resource <code>r</code> by factor <code>by</code>
and normalize up using step-factor <code>stepFactor</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#multiplyAndNormalizeUp-org.apache.hadoop.yarn.api.records.Resource-double-org.apache.hadoop.yarn.api.records.Resource-">multiplyAndNormalizeUp</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>r</code> - resource to be multiplied</dd>
<dd><code>by</code> - multiplier</dd>
<dd><code>stepFactor</code> - factor by which to normalize up</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>resulting normalized resource</dd>
</dl>
</li>
</ul>
<a name="multiplyAndNormalizeDown-org.apache.hadoop.yarn.api.records.Resource-double-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>multiplyAndNormalizeDown</h4>
<pre>public&nbsp;org.apache.hadoop.yarn.api.records.Resource&nbsp;multiplyAndNormalizeDown(org.apache.hadoop.yarn.api.records.Resource&nbsp;r,
double&nbsp;by,
org.apache.hadoop.yarn.api.records.Resource&nbsp;stepFactor)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#multiplyAndNormalizeDown-org.apache.hadoop.yarn.api.records.Resource-double-org.apache.hadoop.yarn.api.records.Resource-">ResourceCalculator</a></code></span></div>
<div class="block">Multiply resource <code>r</code> by factor <code>by</code>
and normalize down using step-factor <code>stepFactor</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#multiplyAndNormalizeDown-org.apache.hadoop.yarn.api.records.Resource-double-org.apache.hadoop.yarn.api.records.Resource-">multiplyAndNormalizeDown</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>r</code> - resource to be multiplied</dd>
<dd><code>by</code> - multiplier</dd>
<dd><code>stepFactor</code> - factor by which to normalize down</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>resulting normalized resource</dd>
</dl>
</li>
</ul>
<a name="fitsIn-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fitsIn</h4>
<pre>public&nbsp;boolean&nbsp;fitsIn(org.apache.hadoop.yarn.api.records.Resource&nbsp;smaller,
org.apache.hadoop.yarn.api.records.Resource&nbsp;bigger)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#fitsIn-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">ResourceCalculator</a></code></span></div>
<div class="block">Check if a smaller resource can be contained by bigger resource.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#fitsIn-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">fitsIn</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
</dl>
</li>
</ul>
<a name="normalizeDown-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>normalizeDown</h4>
<pre>public&nbsp;org.apache.hadoop.yarn.api.records.Resource&nbsp;normalizeDown(org.apache.hadoop.yarn.api.records.Resource&nbsp;r,
org.apache.hadoop.yarn.api.records.Resource&nbsp;stepFactor)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#normalizeDown-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">ResourceCalculator</a></code></span></div>
<div class="block">Get resource <code>r</code>and normalize down using step-factor
<code>stepFactor</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#normalizeDown-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">normalizeDown</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>r</code> - resource to be multiplied</dd>
<dd><code>stepFactor</code> - factor by which to normalize down</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>resulting normalized resource</dd>
</dl>
</li>
</ul>
<a name="isAnyMajorResourceZeroOrNegative-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAnyMajorResourceZeroOrNegative</h4>
<pre>public&nbsp;boolean&nbsp;isAnyMajorResourceZeroOrNegative(org.apache.hadoop.yarn.api.records.Resource&nbsp;resource)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#isAnyMajorResourceZeroOrNegative-org.apache.hadoop.yarn.api.records.Resource-">ResourceCalculator</a></code></span></div>
<div class="block">Check if resource has any major resource types (which are all NodeManagers
included) a zero value or negative value.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#isAnyMajorResourceZeroOrNegative-org.apache.hadoop.yarn.api.records.Resource-">isAnyMajorResourceZeroOrNegative</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>resource</code> - resource</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>returns true if any resource is zero.</dd>
</dl>
</li>
</ul>
<a name="isAnyMajorResourceAboveZero-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAnyMajorResourceAboveZero</h4>
<pre>public&nbsp;boolean&nbsp;isAnyMajorResourceAboveZero(org.apache.hadoop.yarn.api.records.Resource&nbsp;resource)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#isAnyMajorResourceAboveZero-org.apache.hadoop.yarn.api.records.Resource-">ResourceCalculator</a></code></span></div>
<div class="block">Check if resource has any major resource types (which are all NodeManagers
included) has a &gt; 0 value.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#isAnyMajorResourceAboveZero-org.apache.hadoop.yarn.api.records.Resource-">isAnyMajorResourceAboveZero</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>resource</code> - resource</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>returns true if any resource is &gt; 0</dd>
</dl>
</li>
</ul>
<a name="getInsufficientResourceNames-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getInsufficientResourceNames</h4>
<pre>public&nbsp;<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;<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>&gt;&nbsp;getInsufficientResourceNames(org.apache.hadoop.yarn.api.records.Resource&nbsp;required,
org.apache.hadoop.yarn.api.records.Resource&nbsp;available)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#getInsufficientResourceNames-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">ResourceCalculator</a></code></span></div>
<div class="block">Get insufficient resource names via comparing required resource and
capacity resource.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#getInsufficientResourceNames-org.apache.hadoop.yarn.api.records.Resource-org.apache.hadoop.yarn.api.records.Resource-">getInsufficientResourceNames</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">ResourceCalculator</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>required</code> - - required resource</dd>
<dd><code>available</code> - - available resource</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>insufficient resource names</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/DominantResourceCalculator.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/util/resource/DefaultResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.html" target="_top">Frames</a></li>
<li><a href="DominantResourceCalculator.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><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>