<!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:09:35 GMT 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Uses of Package org.apache.hadoop.yarn.api.resource (Apache Hadoop YARN API 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="Uses of Package org.apache.hadoop.yarn.api.resource (Apache Hadoop YARN API 3.3.1 API)";
        }
    }
    catch(err) {
    }
//-->
</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</li>
<li class="navBarCell1Rev">Use</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/yarn/api/resource/package-use.html" target="_top">Frames</a></li>
<li><a href="package-use.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>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<div class="header">
<h1 title="Uses of Package org.apache.hadoop.yarn.api.resource" class="title">Uses of Package<br>org.apache.hadoop.yarn.api.resource</h1>
</div>
<div class="contentContainer">
<ul class="blockList">
<li class="blockList">
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing packages, and an explanation">
<caption><span>Packages that use <a href="../../../../../../org/apache/hadoop/yarn/api/resource/package-summary.html">org.apache.hadoop.yarn.api.resource</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Package</th>
<th class="colLast" scope="col">Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colFirst"><a href="#org.apache.hadoop.yarn.api.protocolrecords">org.apache.hadoop.yarn.api.protocolrecords</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.hadoop.yarn.api.records">org.apache.hadoop.yarn.api.records</a></td>
<td class="colLast">&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><a href="#org.apache.hadoop.yarn.api.resource">org.apache.hadoop.yarn.api.resource</a></td>
<td class="colLast">
<div class="block">API related to resources.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><a href="#org.apache.hadoop.yarn.util.constraint">org.apache.hadoop.yarn.util.constraint</a></td>
<td class="colLast">
<div class="block">Package org.apache.hadoop.yarn.util.constraint contains classes
 which is used as utility class for placement constraints.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.hadoop.yarn.api.protocolrecords">
<!--   -->
</a>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
<caption><span>Classes in <a href="../../../../../../org/apache/hadoop/yarn/api/resource/package-summary.html">org.apache.hadoop.yarn.api.resource</a> used by <a href="../../../../../../org/apache/hadoop/yarn/api/protocolrecords/package-summary.html">org.apache.hadoop.yarn.api.protocolrecords</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Class and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.html#org.apache.hadoop.yarn.api.protocolrecords">PlacementConstraint</a>
<div class="block"><code>PlacementConstraint</code> represents a placement constraint for a resource
 allocation.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.hadoop.yarn.api.records">
<!--   -->
</a>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
<caption><span>Classes in <a href="../../../../../../org/apache/hadoop/yarn/api/resource/package-summary.html">org.apache.hadoop.yarn.api.resource</a> used by <a href="../../../../../../org/apache/hadoop/yarn/api/records/package-summary.html">org.apache.hadoop.yarn.api.records</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Class and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.html#org.apache.hadoop.yarn.api.records">PlacementConstraint</a>
<div class="block"><code>PlacementConstraint</code> represents a placement constraint for a resource
 allocation.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.hadoop.yarn.api.resource">
<!--   -->
</a>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
<caption><span>Classes in <a href="../../../../../../org/apache/hadoop/yarn/api/resource/package-summary.html">org.apache.hadoop.yarn.api.resource</a> used by <a href="../../../../../../org/apache/hadoop/yarn/api/resource/package-summary.html">org.apache.hadoop.yarn.api.resource</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Class and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.html#org.apache.hadoop.yarn.api.resource">PlacementConstraint</a>
<div class="block"><code>PlacementConstraint</code> represents a placement constraint for a resource
 allocation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.AbstractConstraint.html#org.apache.hadoop.yarn.api.resource">PlacementConstraint.AbstractConstraint</a>
<div class="block">Abstract class that acts as the superclass of all placement constraint
 classes.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.And.html#org.apache.hadoop.yarn.api.resource">PlacementConstraint.And</a>
<div class="block">Class that represents a composite constraint that is a conjunction of other
 constraints.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.CardinalityConstraint.html#org.apache.hadoop.yarn.api.resource">PlacementConstraint.CardinalityConstraint</a>
<div class="block">Class that represents a cardinality constraint.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.CompositeConstraint.html#org.apache.hadoop.yarn.api.resource">PlacementConstraint.CompositeConstraint</a>
<div class="block">Class that represents composite constraints, which comprise other
 constraints, forming a constraint tree.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.DelayedOr.html#org.apache.hadoop.yarn.api.resource">PlacementConstraint.DelayedOr</a>
<div class="block">Class that represents a composite constraint that comprises a list of timed
 placement constraints (see <a href="../../../../../../org/apache/hadoop/yarn/api/resource/PlacementConstraint.TimedPlacementConstraint.html" title="class in org.apache.hadoop.yarn.api.resource"><code>PlacementConstraint.TimedPlacementConstraint</code></a>).</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.Or.html#org.apache.hadoop.yarn.api.resource">PlacementConstraint.Or</a>
<div class="block">Class that represents a composite constraint that is a disjunction of other
 constraints.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.SingleConstraint.html#org.apache.hadoop.yarn.api.resource">PlacementConstraint.SingleConstraint</a>
<div class="block">Consider a set of nodes N that belongs to the scope specified in the
 constraint.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.TargetConstraint.html#org.apache.hadoop.yarn.api.resource">PlacementConstraint.TargetConstraint</a>
<div class="block">Class that represents a target constraint.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.TargetExpression.html#org.apache.hadoop.yarn.api.resource">PlacementConstraint.TargetExpression</a>
<div class="block">Class representing the target expressions that are used in placement
 constraints.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.TargetExpression.TargetType.html#org.apache.hadoop.yarn.api.resource">PlacementConstraint.TargetExpression.TargetType</a>
<div class="block">Enum specifying the type of the target expression.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.TimedPlacementConstraint.html#org.apache.hadoop.yarn.api.resource">PlacementConstraint.TimedPlacementConstraint</a>
<div class="block">Represents a timed placement constraint that has to be satisfied within a
 time window.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.TimedPlacementConstraint.DelayUnit.html#org.apache.hadoop.yarn.api.resource">PlacementConstraint.TimedPlacementConstraint.DelayUnit</a>
<div class="block">The unit of scheduling delay.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.Visitable.html#org.apache.hadoop.yarn.api.resource">PlacementConstraint.Visitable</a>
<div class="block">Interface used to enable the elements of the constraint tree to be visited.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.Visitor.html#org.apache.hadoop.yarn.api.resource">PlacementConstraint.Visitor</a>
<div class="block">Visitor API for a constraint tree.</div>
</td>
</tr>
</tbody>
</table>
</li>
<li class="blockList"><a name="org.apache.hadoop.yarn.util.constraint">
<!--   -->
</a>
<table class="useSummary" border="0" cellpadding="3" cellspacing="0" summary="Use table, listing classes, and an explanation">
<caption><span>Classes in <a href="../../../../../../org/apache/hadoop/yarn/api/resource/package-summary.html">org.apache.hadoop.yarn.api.resource</a> used by <a href="../../../../../../org/apache/hadoop/yarn/util/constraint/package-summary.html">org.apache.hadoop.yarn.util.constraint</a></span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Class and Description</th>
</tr>
<tbody>
<tr class="altColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.html#org.apache.hadoop.yarn.util.constraint">PlacementConstraint</a>
<div class="block"><code>PlacementConstraint</code> represents a placement constraint for a resource
 allocation.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><a href="../../../../../../org/apache/hadoop/yarn/api/resource/class-use/PlacementConstraint.AbstractConstraint.html#org.apache.hadoop.yarn.util.constraint">PlacementConstraint.AbstractConstraint</a>
<div class="block">Abstract class that acts as the superclass of all placement constraint
 classes.</div>
</td>
</tr>
</tbody>
</table>
</li>
</ul>
</div>
<!-- ======= 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</li>
<li class="navBarCell1Rev">Use</li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev</li>
<li>Next</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/hadoop/yarn/api/resource/package-use.html" target="_top">Frames</a></li>
<li><a href="package-use.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>
<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>
