blob: d5b33011ff0ae48c469bf59d82bc3ad61e758e55 [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_352) on Wed Mar 15 17:18:26 GMT 2023 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>FederationInterceptor (Apache Hadoop YARN NodeManager 3.3.5 API)</title>
<meta name="date" content="2023-03-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="FederationInterceptor (Apache Hadoop YARN NodeManager 3.3.5 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":9,"i17":9,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static 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/FederationInterceptor.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/DefaultRequestInterceptor.html" title="class in org.apache.hadoop.yarn.server.nodemanager.amrmproxy"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html" target="_top">Frames</a></li>
<li><a href="FederationInterceptor.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.yarn.server.nodemanager.amrmproxy</div>
<h2 title="Class FederationInterceptor" class="title">Class FederationInterceptor</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/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html" title="class in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">org.apache.hadoop.yarn.server.nodemanager.amrmproxy.AbstractRequestInterceptor</a></li>
<li>
<ul class="inheritance">
<li>org.apache.hadoop.yarn.server.nodemanager.amrmproxy.FederationInterceptor</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>org.apache.hadoop.conf.Configurable, org.apache.hadoop.yarn.api.ApplicationMasterProtocol, org.apache.hadoop.yarn.server.api.DistributedSchedulingAMProtocol, <a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">RequestInterceptor</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">FederationInterceptor</span>
extends <a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html" title="class in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">AbstractRequestInterceptor</a></pre>
<div class="block">Extends the AbstractRequestInterceptor and provides an implementation for
federation of YARN RM and scaling an application across multiple YARN
sub-clusters. All the federation specific implementation is encapsulated in
this class. This is always the last intercepter in the chain.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#NMSS_CLASS_PREFIX">NMSS_CLASS_PREFIX</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#NMSS_REG_REQUEST_KEY">NMSS_REG_REQUEST_KEY</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#NMSS_REG_RESPONSE_KEY">NMSS_REG_RESPONSE_KEY</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#NMSS_SECONDARY_SC_PREFIX">NMSS_SECONDARY_SC_PREFIX</a></span></code>
<div class="block">When AMRMProxy HA is enabled, secondary AMRMTokens will be stored in Yarn
Registry.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#STRING_TO_BYTE_FORMAT">STRING_TO_BYTE_FORMAT</a></span></code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#FederationInterceptor--">FederationInterceptor</a></span>()</code>
<div class="block">Creates an instance of the FederationInterceptor class.</div>
</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="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>org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#allocate-org.apache.hadoop.yarn.api.protocolrecords.AllocateRequest-">allocate</a></span>(org.apache.hadoop.yarn.api.protocolrecords.AllocateRequest&nbsp;request)</code>
<div class="block">Sends the heart beats to the home RM and the secondary sub-cluster RMs that
are being used by the application.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#cleanupRegistry--">cleanupRegistry</a></span>()</code>
<div class="block">Only for unit test cleanup.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>protected org.apache.hadoop.yarn.server.AMHeartbeatRequestHandler</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#createHomeHeartbeartHandler-org.apache.hadoop.conf.Configuration-org.apache.hadoop.yarn.api.records.ApplicationId-org.apache.hadoop.yarn.server.AMRMClientRelayer-">createHomeHeartbeartHandler</a></span>(org.apache.hadoop.conf.Configuration&nbsp;conf,
org.apache.hadoop.yarn.api.records.ApplicationId&nbsp;appId,
org.apache.hadoop.yarn.server.AMRMClientRelayer&nbsp;rmProxyRelayer)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected &lt;T&gt;&nbsp;T</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#createHomeRMProxy-org.apache.hadoop.yarn.server.nodemanager.amrmproxy.AMRMProxyApplicationContext-java.lang.Class-org.apache.hadoop.security.UserGroupInformation-">createHomeRMProxy</a></span>(<a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AMRMProxyApplicationContext.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">AMRMProxyApplicationContext</a>&nbsp;appContext,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;protocol,
org.apache.hadoop.security.UserGroupInformation&nbsp;user)</code>
<div class="block">Create a proxy instance that is used to connect to the Home resource
manager.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected org.apache.hadoop.yarn.server.uam.UnmanagedAMPoolManager</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#createUnmanagedAMPoolManager-java.util.concurrent.ExecutorService-">createUnmanagedAMPoolManager</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;threadPool)</code>
<div class="block">Create the UAM pool manager for secondary sub-clsuters.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationMasterResponse</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#finishApplicationMaster-org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationMasterRequest-">finishApplicationMaster</a></span>(org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationMasterRequest&nbsp;request)</code>
<div class="block">Sends the finish application master request to all the resource managers
used by the application.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#generateBaseAllocationResponse--">generateBaseAllocationResponse</a></span>()</code>
<div class="block">Prepare the base allocation response.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.yarn.server.federation.store.records.SubClusterId,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#getAsyncResponseSink--">getAsyncResponseSink</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected org.apache.hadoop.yarn.api.records.ApplicationAttemptId</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#getAttemptId--">getAttemptId</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected org.apache.hadoop.yarn.server.AMHeartbeatRequestHandler</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#getHomeHeartbeartHandler--">getHomeHeartbeartHandler</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected org.apache.hadoop.yarn.server.federation.utils.FederationRegistryClient</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#getRegistryClient--">getRegistryClient</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>protected <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;org.apache.hadoop.yarn.server.federation.store.records.SubClusterId&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#getTimedOutSCs-boolean-">getTimedOutSCs</a></span>(boolean&nbsp;verbose)</code>&nbsp;</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.yarn.server.federation.store.records.SubClusterId,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;?&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#getUamRegisterFutures--">getUamRegisterFutures</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>protected org.apache.hadoop.yarn.server.uam.UnmanagedAMPoolManager</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#getUnmanagedAMPool--">getUnmanagedAMPool</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#getUnmanagedAMPoolSize--">getUnmanagedAMPoolSize</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#init-org.apache.hadoop.yarn.server.nodemanager.amrmproxy.AMRMProxyApplicationContext-">init</a></span>(<a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AMRMProxyApplicationContext.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">AMRMProxyApplicationContext</a>&nbsp;appContext)</code>
<div class="block">Initializes the instance using specified context.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>static &lt;T&gt;&nbsp;boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#isNullOrEmpty-java.util.Collection-">isNullOrEmpty</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;T&gt;&nbsp;c)</code>
<div class="block">Utility method to check if the specified Collection is null or empty.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>static &lt;T1,T2&gt;&nbsp;boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#isNullOrEmpty-java.util.Map-">isNullOrEmpty</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;T1,T2&gt;&nbsp;c)</code>
<div class="block">Utility method to check if the specified Collection is null or empty.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#mergeAllocateResponse-org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse-org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse-org.apache.hadoop.yarn.server.federation.store.records.SubClusterId-">mergeAllocateResponse</a></span>(org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse&nbsp;homeResponse,
org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse&nbsp;otherResponse,
org.apache.hadoop.yarn.server.federation.store.records.SubClusterId&nbsp;otherRMAddress)</code>&nbsp;</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#reAttachUAMAndMergeRegisterResponse-org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterResponse-org.apache.hadoop.yarn.api.records.ApplicationId-">reAttachUAMAndMergeRegisterResponse</a></span>(org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterResponse&nbsp;homeResponse,
org.apache.hadoop.yarn.api.records.ApplicationId&nbsp;appId)</code>
<div class="block">Try re-attach to all existing and running UAMs in secondary sub-clusters
launched by previous application attempts if any.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#recover-java.util.Map-">recover</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;&nbsp;recoveredDataMap)</code>
<div class="block">Recover <a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy"><code>RequestInterceptor</code></a> state from store.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterResponse</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#registerApplicationMaster-org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterRequest-">registerApplicationMaster</a></span>(org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterRequest&nbsp;request)</code>
<div class="block">Sends the application master's registration request to the home RM.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#setNextInterceptor-org.apache.hadoop.yarn.server.nodemanager.amrmproxy.RequestInterceptor-">setNextInterceptor</a></span>(<a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">RequestInterceptor</a>&nbsp;next)</code>
<div class="block">Sets the <a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy"><code>RequestInterceptor</code></a> in the chain.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#shutdown--">shutdown</a></span>()</code>
<div class="block">This is called when the application pipeline is being destroyed.</div>
</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>protected <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.yarn.server.federation.store.records.SubClusterId,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.yarn.api.records.ResourceRequest&gt;&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html#splitResourceRequests-java.util.List-">splitResourceRequests</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.yarn.api.records.ResourceRequest&gt;&nbsp;askList)</code>
<div class="block">Splits the specified request to send it to different sub clusters.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.yarn.server.nodemanager.amrmproxy.AbstractRequestInterceptor">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.hadoop.yarn.server.nodemanager.amrmproxy.<a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html" title="class in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">AbstractRequestInterceptor</a></h3>
<code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html#allocateForDistributedScheduling-org.apache.hadoop.yarn.server.api.protocolrecords.DistributedSchedulingAllocateRequest-">allocateForDistributedScheduling</a>, <a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html#getApplicationContext--">getApplicationContext</a>, <a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html#getConf--">getConf</a>, <a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html#getNextInterceptor--">getNextInterceptor</a>, <a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html#getNMStateStore--">getNMStateStore</a>, <a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html#registerApplicationMasterForDistributedScheduling-org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterRequest-">registerApplicationMasterForDistributedScheduling</a>, <a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html#setConf-org.apache.hadoop.conf.Configuration-">setConf</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">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="NMSS_CLASS_PREFIX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NMSS_CLASS_PREFIX</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> NMSS_CLASS_PREFIX</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.hadoop.yarn.server.nodemanager.amrmproxy.FederationInterceptor.NMSS_CLASS_PREFIX">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NMSS_REG_REQUEST_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NMSS_REG_REQUEST_KEY</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> NMSS_REG_REQUEST_KEY</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.hadoop.yarn.server.nodemanager.amrmproxy.FederationInterceptor.NMSS_REG_REQUEST_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NMSS_REG_RESPONSE_KEY">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NMSS_REG_RESPONSE_KEY</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> NMSS_REG_RESPONSE_KEY</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.hadoop.yarn.server.nodemanager.amrmproxy.FederationInterceptor.NMSS_REG_RESPONSE_KEY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="NMSS_SECONDARY_SC_PREFIX">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>NMSS_SECONDARY_SC_PREFIX</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> NMSS_SECONDARY_SC_PREFIX</pre>
<div class="block">When AMRMProxy HA is enabled, secondary AMRMTokens will be stored in Yarn
Registry. Otherwise if NM recovery is enabled, the UAM token are stored in
local NMSS instead under this directory name.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.hadoop.yarn.server.nodemanager.amrmproxy.FederationInterceptor.NMSS_SECONDARY_SC_PREFIX">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="STRING_TO_BYTE_FORMAT">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>STRING_TO_BYTE_FORMAT</h4>
<pre>public static final&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a> STRING_TO_BYTE_FORMAT</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../../constant-values.html#org.apache.hadoop.yarn.server.nodemanager.amrmproxy.FederationInterceptor.STRING_TO_BYTE_FORMAT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="FederationInterceptor--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>FederationInterceptor</h4>
<pre>public&nbsp;FederationInterceptor()</pre>
<div class="block">Creates an instance of the FederationInterceptor class.</div>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="init-org.apache.hadoop.yarn.server.nodemanager.amrmproxy.AMRMProxyApplicationContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre>public&nbsp;void&nbsp;init(<a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AMRMProxyApplicationContext.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">AMRMProxyApplicationContext</a>&nbsp;appContext)</pre>
<div class="block">Initializes the instance using specified context.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html#init-org.apache.hadoop.yarn.server.nodemanager.amrmproxy.AMRMProxyApplicationContext-">init</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">RequestInterceptor</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html#init-org.apache.hadoop.yarn.server.nodemanager.amrmproxy.AMRMProxyApplicationContext-">init</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html" title="class in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">AbstractRequestInterceptor</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>appContext</code> - AMRMProxy application context</dd>
</dl>
</li>
</ul>
<a name="recover-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>recover</h4>
<pre>public&nbsp;void&nbsp;recover(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,byte[]&gt;&nbsp;recoveredDataMap)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html#recover-java.util.Map-">AbstractRequestInterceptor</a></code></span></div>
<div class="block">Recover <a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy"><code>RequestInterceptor</code></a> state from store.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html#recover-java.util.Map-">recover</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">RequestInterceptor</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html#recover-java.util.Map-">recover</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html" title="class in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">AbstractRequestInterceptor</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>recoveredDataMap</code> - states for all intercepters recovered from NMSS</dd>
</dl>
</li>
</ul>
<a name="registerApplicationMaster-org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterRequest-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>registerApplicationMaster</h4>
<pre>public&nbsp;org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterResponse&nbsp;registerApplicationMaster(org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterRequest&nbsp;request)
throws org.apache.hadoop.yarn.exceptions.YarnException,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Sends the application master's registration request to the home RM.
Between AM and AMRMProxy, FederationInterceptor modifies the RM behavior,
so that when AM registers more than once, it returns the same register
success response instead of throwing
<code>InvalidApplicationMasterRequestException</code>. Furthermore, we present
to AM as if we are the RM that never fails over (except when AMRMProxy
restarts). When actual RM fails over, we always re-register automatically.
We did this because FederationInterceptor can receive concurrent register
requests from AM because of timeout between AM and AMRMProxy, which is
shorter than the timeout + failOver between FederationInterceptor
(AMRMProxy) and RM.
For the same reason, this method needs to be synchronized.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.yarn.exceptions.YarnException</code></dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="allocate-org.apache.hadoop.yarn.api.protocolrecords.AllocateRequest-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allocate</h4>
<pre>public&nbsp;org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse&nbsp;allocate(org.apache.hadoop.yarn.api.protocolrecords.AllocateRequest&nbsp;request)
throws org.apache.hadoop.yarn.exceptions.YarnException,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Sends the heart beats to the home RM and the secondary sub-cluster RMs that
are being used by the application.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.yarn.exceptions.YarnException</code></dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="finishApplicationMaster-org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationMasterRequest-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>finishApplicationMaster</h4>
<pre>public&nbsp;org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationMasterResponse&nbsp;finishApplicationMaster(org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationMasterRequest&nbsp;request)
throws org.apache.hadoop.yarn.exceptions.YarnException,
<a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block">Sends the finish application master request to all the resource managers
used by the application.</div>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.yarn.exceptions.YarnException</code></dd>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="setNextInterceptor-org.apache.hadoop.yarn.server.nodemanager.amrmproxy.RequestInterceptor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setNextInterceptor</h4>
<pre>public&nbsp;void&nbsp;setNextInterceptor(<a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">RequestInterceptor</a>&nbsp;next)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html#setNextInterceptor-org.apache.hadoop.yarn.server.nodemanager.amrmproxy.RequestInterceptor-">AbstractRequestInterceptor</a></code></span></div>
<div class="block">Sets the <a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy"><code>RequestInterceptor</code></a> in the chain.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html#setNextInterceptor-org.apache.hadoop.yarn.server.nodemanager.amrmproxy.RequestInterceptor-">setNextInterceptor</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">RequestInterceptor</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html#setNextInterceptor-org.apache.hadoop.yarn.server.nodemanager.amrmproxy.RequestInterceptor-">setNextInterceptor</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html" title="class in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">AbstractRequestInterceptor</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>next</code> - the next intercepter to set</dd>
</dl>
</li>
</ul>
<a name="shutdown--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shutdown</h4>
<pre>public&nbsp;void&nbsp;shutdown()</pre>
<div class="block">This is called when the application pipeline is being destroyed. We will
release all the resources that we are holding in this call.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html#shutdown--">shutdown</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">RequestInterceptor</a></code></dd>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html#shutdown--">shutdown</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html" title="class in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">AbstractRequestInterceptor</a></code></dd>
</dl>
</li>
</ul>
<a name="cleanupRegistry--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>cleanupRegistry</h4>
<pre>protected&nbsp;void&nbsp;cleanupRegistry()</pre>
<div class="block">Only for unit test cleanup.</div>
</li>
</ul>
<a name="getRegistryClient--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getRegistryClient</h4>
<pre>protected&nbsp;org.apache.hadoop.yarn.server.federation.utils.FederationRegistryClient&nbsp;getRegistryClient()</pre>
</li>
</ul>
<a name="getAttemptId--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAttemptId</h4>
<pre>protected&nbsp;org.apache.hadoop.yarn.api.records.ApplicationAttemptId&nbsp;getAttemptId()</pre>
</li>
</ul>
<a name="getHomeHeartbeartHandler--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getHomeHeartbeartHandler</h4>
<pre>protected&nbsp;org.apache.hadoop.yarn.server.AMHeartbeatRequestHandler&nbsp;getHomeHeartbeartHandler()</pre>
</li>
</ul>
<a name="createUnmanagedAMPoolManager-java.util.concurrent.ExecutorService-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createUnmanagedAMPoolManager</h4>
<pre>protected&nbsp;org.apache.hadoop.yarn.server.uam.UnmanagedAMPoolManager&nbsp;createUnmanagedAMPoolManager(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html?is-external=true" title="class or interface in java.util.concurrent">ExecutorService</a>&nbsp;threadPool)</pre>
<div class="block">Create the UAM pool manager for secondary sub-clsuters. For unit test to
override.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>threadPool</code> - the thread pool to use</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the UAM pool manager instance</dd>
</dl>
</li>
</ul>
<a name="createHomeHeartbeartHandler-org.apache.hadoop.conf.Configuration-org.apache.hadoop.yarn.api.records.ApplicationId-org.apache.hadoop.yarn.server.AMRMClientRelayer-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createHomeHeartbeartHandler</h4>
<pre>protected&nbsp;org.apache.hadoop.yarn.server.AMHeartbeatRequestHandler&nbsp;createHomeHeartbeartHandler(org.apache.hadoop.conf.Configuration&nbsp;conf,
org.apache.hadoop.yarn.api.records.ApplicationId&nbsp;appId,
org.apache.hadoop.yarn.server.AMRMClientRelayer&nbsp;rmProxyRelayer)</pre>
</li>
</ul>
<a name="createHomeRMProxy-org.apache.hadoop.yarn.server.nodemanager.amrmproxy.AMRMProxyApplicationContext-java.lang.Class-org.apache.hadoop.security.UserGroupInformation-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createHomeRMProxy</h4>
<pre>protected&nbsp;&lt;T&gt;&nbsp;T&nbsp;createHomeRMProxy(<a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AMRMProxyApplicationContext.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">AMRMProxyApplicationContext</a>&nbsp;appContext,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Class.html?is-external=true" title="class or interface in java.lang">Class</a>&lt;T&gt;&nbsp;protocol,
org.apache.hadoop.security.UserGroupInformation&nbsp;user)</pre>
<div class="block">Create a proxy instance that is used to connect to the Home resource
manager.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - the type of the proxy</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>appContext</code> - AMRMProxyApplicationContext</dd>
<dd><code>protocol</code> - the protocol class for the proxy</dd>
<dd><code>user</code> - the ugi for the proxy</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the proxy created</dd>
</dl>
</li>
</ul>
<a name="reAttachUAMAndMergeRegisterResponse-org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterResponse-org.apache.hadoop.yarn.api.records.ApplicationId-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reAttachUAMAndMergeRegisterResponse</h4>
<pre>protected&nbsp;void&nbsp;reAttachUAMAndMergeRegisterResponse(org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterResponse&nbsp;homeResponse,
org.apache.hadoop.yarn.api.records.ApplicationId&nbsp;appId)</pre>
<div class="block">Try re-attach to all existing and running UAMs in secondary sub-clusters
launched by previous application attempts if any. All running containers in
the UAMs will be combined into the registerResponse. For the first attempt,
the registry will be empty for this application and thus no-op here.</div>
</li>
</ul>
<a name="generateBaseAllocationResponse--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>generateBaseAllocationResponse</h4>
<pre>protected&nbsp;org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse&nbsp;generateBaseAllocationResponse()</pre>
<div class="block">Prepare the base allocation response. Use lastSCResponse and
lastHeartbeatTimeStamp to assemble entries about cluster-wide info, e.g.
AvailableResource, NumClusterNodes.</div>
</li>
</ul>
<a name="mergeAllocateResponse-org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse-org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse-org.apache.hadoop.yarn.server.federation.store.records.SubClusterId-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mergeAllocateResponse</h4>
<pre>protected&nbsp;void&nbsp;mergeAllocateResponse(org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse&nbsp;homeResponse,
org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse&nbsp;otherResponse,
org.apache.hadoop.yarn.server.federation.store.records.SubClusterId&nbsp;otherRMAddress)</pre>
</li>
</ul>
<a name="getTimedOutSCs-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTimedOutSCs</h4>
<pre>protected&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;org.apache.hadoop.yarn.server.federation.store.records.SubClusterId&gt;&nbsp;getTimedOutSCs(boolean&nbsp;verbose)</pre>
</li>
</ul>
<a name="splitResourceRequests-java.util.List-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>splitResourceRequests</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.yarn.server.federation.store.records.SubClusterId,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.yarn.api.records.ResourceRequest&gt;&gt;&nbsp;splitResourceRequests(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.yarn.api.records.ResourceRequest&gt;&nbsp;askList)
throws org.apache.hadoop.yarn.exceptions.YarnException</pre>
<div class="block">Splits the specified request to send it to different sub clusters. The
splitting algorithm is very simple. If the request does not have a node
preference, the policy decides the sub cluster. If the request has a node
preference and if locality is required, then it is sent to the sub cluster
that contains the requested node. If node preference is specified and
locality is not required, then the policy decides the sub cluster.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>askList</code> - the ask list to split</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the split asks</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>org.apache.hadoop.yarn.exceptions.YarnException</code> - if split fails</dd>
</dl>
</li>
</ul>
<a name="getUnmanagedAMPoolSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUnmanagedAMPoolSize</h4>
<pre>protected&nbsp;int&nbsp;getUnmanagedAMPoolSize()</pre>
</li>
</ul>
<a name="getUnmanagedAMPool--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUnmanagedAMPool</h4>
<pre>protected&nbsp;org.apache.hadoop.yarn.server.uam.UnmanagedAMPoolManager&nbsp;getUnmanagedAMPool()</pre>
</li>
</ul>
<a name="getUamRegisterFutures--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getUamRegisterFutures</h4>
<pre>protected&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.yarn.server.federation.store.records.SubClusterId,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/Future.html?is-external=true" title="class or interface in java.util.concurrent">Future</a>&lt;?&gt;&gt;&nbsp;getUamRegisterFutures()</pre>
</li>
</ul>
<a name="getAsyncResponseSink--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAsyncResponseSink</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;org.apache.hadoop.yarn.server.federation.store.records.SubClusterId,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a>&lt;org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse&gt;&gt;&nbsp;getAsyncResponseSink()</pre>
</li>
</ul>
<a name="isNullOrEmpty-java.util.Collection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isNullOrEmpty</h4>
<pre>public static&nbsp;&lt;T&gt;&nbsp;boolean&nbsp;isNullOrEmpty(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;T&gt;&nbsp;c)</pre>
<div class="block">Utility method to check if the specified Collection is null or empty.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - element type of the collection</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>c</code> - the collection object</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether is it is null or empty</dd>
</dl>
</li>
</ul>
<a name="isNullOrEmpty-java.util.Map-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>isNullOrEmpty</h4>
<pre>public static&nbsp;&lt;T1,T2&gt;&nbsp;boolean&nbsp;isNullOrEmpty(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;T1,T2&gt;&nbsp;c)</pre>
<div class="block">Utility method to check if the specified Collection is null or empty.</div>
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T1</code> - key type of the map</dd>
<dd><code>T2</code> - value type of the map</dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>c</code> - the map object</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>whether is it is null or empty</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/FederationInterceptor.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/DefaultRequestInterceptor.html" title="class in org.apache.hadoop.yarn.server.nodemanager.amrmproxy"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html" target="_top">Frames</a></li>
<li><a href="FederationInterceptor.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2008&#x2013;2023 <a href="https://www.apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>