blob: ec989b717161707727489a0aee9980bab0127b7c [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_312) on Fri Jul 29 14:08:49 GMT 2022 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>ResourceCalculator (Apache Hadoop YARN Common 3.3.4 API)</title>
<meta name="date" content="2022-07-29">
<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="ResourceCalculator (Apache Hadoop YARN Common 3.3.4 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":6,"i2":6,"i3":6,"i4":9,"i5":9,"i6":9,"i7":9,"i8":6,"i9":6,"i10":9,"i11":6,"i12":6,"i13":6,"i14":6,"i15":6,"i16":6,"i17":6,"i18":6,"i19":6,"i20":6,"i21":6,"i22":6,"i23":9,"i24":9,"i25":6,"i26":9,"i27":9,"i28":6};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/ResourceCalculator.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/DominantResourceCalculator.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/Resources.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/ResourceCalculator.html" target="_top">Frames</a></li>
<li><a href="ResourceCalculator.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 ResourceCalculator" class="title">Class ResourceCalculator</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.util.resource.ResourceCalculator</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/util/resource/DefaultResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">DefaultResourceCalculator</a>, <a href="../../../../../../org/apache/hadoop/yarn/util/resource/DominantResourceCalculator.html" title="class in org.apache.hadoop.yarn.util.resource">DominantResourceCalculator</a></dd>
</dl>
<hr>
<br>
<pre>@InterfaceAudience.Private
@InterfaceStability.Unstable
public abstract class <span class="typeNameLabel">ResourceCalculator</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">A set of <code>Resource</code> comparison and manipulation interfaces.</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/ResourceCalculator.html#ResourceCalculator--">ResourceCalculator</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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></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)</code>
<div class="block">On a cluster with capacity <code>clusterResource</code>, compare <code>lhs</code>
and <code>rhs</code> considering all resources.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>abstract int</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></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="i2" class="altColor">
<td class="colFirst"><code>abstract long</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></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="i3" class="rowColor">
<td class="colFirst"><code>abstract float</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></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="i4" class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#divideAndCeil-int-float-">divideAndCeil</a></span>(int&nbsp;a,
float&nbsp;b)</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#divideAndCeil-int-int-">divideAndCeil</a></span>(int&nbsp;a,
int&nbsp;b)</code>&nbsp;</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#divideAndCeil-long-float-">divideAndCeil</a></span>(long&nbsp;a,
float&nbsp;b)</code>&nbsp;</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#divideAndCeil-long-long-">divideAndCeil</a></span>(long&nbsp;a,
long&nbsp;b)</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>abstract org.apache.hadoop.yarn.api.records.Resource</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.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="i9" class="rowColor">
<td class="colFirst"><code>abstract org.apache.hadoop.yarn.api.records.Resource</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.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="i10" class="altColor">
<td class="colFirst"><code>static float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#divideSafelyAsFloat-long-long-">divideSafelyAsFloat</a></span>(long&nbsp;lhs,
long&nbsp;rhs)</code>
<div class="block">Divides lhs by rhs.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></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="i12" class="altColor">
<td class="colFirst"><code>abstract <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/ResourceCalculator.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="i13" class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.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="i14" class="altColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.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="i15" class="rowColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.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="i16" class="altColor">
<td class="colFirst"><code>abstract boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.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="i17" class="rowColor">
<td class="colFirst"><code>abstract org.apache.hadoop.yarn.api.records.Resource</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></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="i18" class="altColor">
<td class="colFirst"><code>abstract org.apache.hadoop.yarn.api.records.Resource</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></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="i19" class="rowColor">
<td class="colFirst"><code>abstract org.apache.hadoop.yarn.api.records.Resource</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></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="i20" class="altColor">
<td class="colFirst"><code>abstract org.apache.hadoop.yarn.api.records.Resource</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></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="i21" class="rowColor">
<td class="colFirst"><code>abstract org.apache.hadoop.yarn.api.records.Resource</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></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="i22" class="altColor">
<td class="colFirst"><code>abstract float</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></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="i23" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#roundDown-int-int-">roundDown</a></span>(int&nbsp;a,
int&nbsp;b)</code>&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#roundDown-long-long-">roundDown</a></span>(long&nbsp;a,
long&nbsp;b)</code>&nbsp;</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>abstract org.apache.hadoop.yarn.api.records.Resource</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></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="i26" class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#roundUp-int-int-">roundUp</a></span>(int&nbsp;a,
int&nbsp;b)</code>&nbsp;</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>static long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/hadoop/yarn/util/resource/ResourceCalculator.html#roundUp-long-long-">roundUp</a></span>(long&nbsp;a,
long&nbsp;b)</code>&nbsp;</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>abstract org.apache.hadoop.yarn.api.records.Resource</code></td>
<td class="colLast"><code><span class="memberNameLink"><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></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.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="ResourceCalculator--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>ResourceCalculator</h4>
<pre>public&nbsp;ResourceCalculator()</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 abstract&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">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="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="compare-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>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)</pre>
<div class="block">On a cluster with capacity <code>clusterResource</code>, compare <code>lhs</code>
and <code>rhs</code> considering all resources.</div>
<dl>
<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>
<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="divideAndCeil-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>divideAndCeil</h4>
<pre>public static&nbsp;int&nbsp;divideAndCeil(int&nbsp;a,
int&nbsp;b)</pre>
</li>
</ul>
<a name="divideAndCeil-int-float-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>divideAndCeil</h4>
<pre>public static&nbsp;int&nbsp;divideAndCeil(int&nbsp;a,
float&nbsp;b)</pre>
</li>
</ul>
<a name="divideAndCeil-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>divideAndCeil</h4>
<pre>public static&nbsp;long&nbsp;divideAndCeil(long&nbsp;a,
long&nbsp;b)</pre>
</li>
</ul>
<a name="divideAndCeil-long-float-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>divideAndCeil</h4>
<pre>public static&nbsp;long&nbsp;divideAndCeil(long&nbsp;a,
float&nbsp;b)</pre>
</li>
</ul>
<a name="divideSafelyAsFloat-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>divideSafelyAsFloat</h4>
<pre>public static&nbsp;float&nbsp;divideSafelyAsFloat(long&nbsp;lhs,
long&nbsp;rhs)</pre>
<div class="block">Divides lhs by rhs.
If both lhs and rhs are having a value of 0, then we return 0.
This is to avoid division by zero and return NaN as a result.
If lhs is zero but rhs is not, Float.infinity will be returned
as the result.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>lhs</code> - </dd>
<dd><code>rhs</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="roundUp-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>roundUp</h4>
<pre>public static&nbsp;int&nbsp;roundUp(int&nbsp;a,
int&nbsp;b)</pre>
</li>
</ul>
<a name="roundUp-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>roundUp</h4>
<pre>public static&nbsp;long&nbsp;roundUp(long&nbsp;a,
long&nbsp;b)</pre>
</li>
</ul>
<a name="roundDown-long-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>roundDown</h4>
<pre>public static&nbsp;long&nbsp;roundDown(long&nbsp;a,
long&nbsp;b)</pre>
</li>
</ul>
<a name="roundDown-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>roundDown</h4>
<pre>public static&nbsp;int&nbsp;roundDown(int&nbsp;a,
int&nbsp;b)</pre>
</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 abstract&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">Compute the number of containers which can be allocated given
<code>available</code> and <code>required</code> resources.</div>
<dl>
<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="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 abstract&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">Multiply resource <code>r</code> by factor <code>by</code>
and normalize up using step-factor <code>stepFactor</code>.</div>
<dl>
<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="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 abstract&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">Multiply resource <code>r</code> by factor <code>by</code>
and normalize up using step-factor <code>stepFactor</code>.</div>
<dl>
<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="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 abstract&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">Multiply resource <code>r</code> by factor <code>by</code>
and normalize down using step-factor <code>stepFactor</code>.</div>
<dl>
<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="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 abstract&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">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="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 abstract&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">Round-up resource <code>r</code> given factor <code>stepFactor</code>.</div>
<dl>
<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 abstract&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">Round-down resource <code>r</code> given factor <code>stepFactor</code>.</div>
<dl>
<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="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 abstract&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">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="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 abstract&nbsp;boolean&nbsp;isInvalidDivisor(org.apache.hadoop.yarn.api.records.Resource&nbsp;r)</pre>
<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="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 abstract&nbsp;boolean&nbsp;isAllInvalidDivisor(org.apache.hadoop.yarn.api.records.Resource&nbsp;r)</pre>
<div class="block">Determine if all resources are zero.</div>
<dl>
<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 abstract&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">Ratio of resource <code>a</code> to resource <code>b</code>.</div>
<dl>
<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 abstract&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">Divide-and-ceil <code>numerator</code> by <code>denominator</code>.</div>
<dl>
<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-float-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>divideAndCeil</h4>
<pre>public abstract&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">Divide-and-ceil <code>numerator</code> by <code>denominator</code>.</div>
<dl>
<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="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 abstract&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">Check if a smaller resource can be contained by bigger resource.</div>
</li>
</ul>
<a name="isAnyMajorResourceZeroOrNegative-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAnyMajorResourceZeroOrNegative</h4>
<pre>public abstract&nbsp;boolean&nbsp;isAnyMajorResourceZeroOrNegative(org.apache.hadoop.yarn.api.records.Resource&nbsp;resource)</pre>
<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="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="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 abstract&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">Get resource <code>r</code>and normalize down using step-factor
<code>stepFactor</code>.</div>
<dl>
<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="isAnyMajorResourceAboveZero-org.apache.hadoop.yarn.api.records.Resource-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isAnyMajorResourceAboveZero</h4>
<pre>public abstract&nbsp;boolean&nbsp;isAnyMajorResourceAboveZero(org.apache.hadoop.yarn.api.records.Resource&nbsp;resource)</pre>
<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="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 abstract&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">Get insufficient resource names via comparing required resource and
capacity resource.</div>
<dl>
<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/ResourceCalculator.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/DominantResourceCalculator.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/Resources.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/ResourceCalculator.html" target="_top">Frames</a></li>
<li><a href="ResourceCalculator.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;2022 <a href="https://www.apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>