blob: 483e561121fb6fd74853d4c40aa57c112f2510c8 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_292) on Tue Jun 15 06:11:23 GMT 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>RequestInterceptor (Apache Hadoop YARN NodeManager 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="RequestInterceptor (Apache Hadoop YARN NodeManager 3.3.1 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/RequestInterceptor.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/FederationInterceptor.html" title="class in org.apache.hadoop.yarn.server.nodemanager.amrmproxy"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html" target="_top">Frames</a></li>
<li><a href="RequestInterceptor.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.hadoop.yarn.server.nodemanager.amrmproxy</div>
<h2 title="Interface RequestInterceptor" class="title">Interface RequestInterceptor</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd>org.apache.hadoop.yarn.api.ApplicationMasterProtocol, org.apache.hadoop.conf.Configurable, org.apache.hadoop.yarn.server.api.DistributedSchedulingAMProtocol</dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AbstractRequestInterceptor.html" title="class in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">AbstractRequestInterceptor</a>, <a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/DefaultRequestInterceptor.html" title="class in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">DefaultRequestInterceptor</a>, <a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/scheduler/DistributedScheduler.html" title="class in org.apache.hadoop.yarn.server.nodemanager.scheduler">DistributedScheduler</a>, <a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/FederationInterceptor.html" title="class in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">FederationInterceptor</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">RequestInterceptor</span>
extends org.apache.hadoop.yarn.server.api.DistributedSchedulingAMProtocol, org.apache.hadoop.conf.Configurable</pre>
<div class="block">Defines the contract to be implemented by the request intercepter classes,
that can be used to intercept and inspect messages sent from the application
master to the resource manager.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AMRMProxyApplicationContext.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">AMRMProxyApplicationContext</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html#getApplicationContext--">getApplicationContext</a></span>()</code>
<div class="block">Returns the context.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><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></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html#getNextInterceptor--">getNextInterceptor</a></span>()</code>
<div class="block">Returns the next intercepter in the chain.</div>
</td>
</tr>
<tr id="i2" 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/RequestInterceptor.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;ctx)</code>
<div class="block">This method is called for initializing the intercepter.</div>
</td>
</tr>
<tr id="i3" 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/RequestInterceptor.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 intercepter state when NM recovery is enabled.</div>
</td>
</tr>
<tr id="i4" 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/RequestInterceptor.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;nextInterceptor)</code>
<div class="block">Sets the next intercepter in the pipeline.</div>
</td>
</tr>
<tr id="i5" 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/RequestInterceptor.html#shutdown--">shutdown</a></span>()</code>
<div class="block">This method is called to release the resources held by the intercepter.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.yarn.server.api.DistributedSchedulingAMProtocol">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.hadoop.yarn.server.api.DistributedSchedulingAMProtocol</h3>
<code>allocateForDistributedScheduling, registerApplicationMasterForDistributedScheduling</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.yarn.api.ApplicationMasterProtocol">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.hadoop.yarn.api.ApplicationMasterProtocol</h3>
<code>allocate, finishApplicationMaster, registerApplicationMaster</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.hadoop.conf.Configurable">
<!-- -->
</a>
<h3>Methods inherited from interface&nbsp;org.apache.hadoop.conf.Configurable</h3>
<code>getConf, setConf</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="init-org.apache.hadoop.yarn.server.nodemanager.amrmproxy.AMRMProxyApplicationContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>init</h4>
<pre>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;ctx)</pre>
<div class="block">This method is called for initializing the intercepter. This is guaranteed
to be called only once in the lifetime of this instance.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>ctx</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>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">Recover intercepter state when NM recovery is enabled. AMRMProxy will
recover the data map into
AMRMProxyApplicationContext.getRecoveredDataMap(). All intercepters should
recover state from it.
For example, registerRequest has to be saved by the last intercepter (i.e.
the one that actually connects to RM), in order to re-register when RM
fails over.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>recoveredDataMap</code> - states for all intercepters recovered from NMSS</dd>
</dl>
</li>
</ul>
<a name="shutdown--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shutdown</h4>
<pre>void&nbsp;shutdown()</pre>
<div class="block">This method is called to release the resources held by the intercepter.
This will be called when the application pipeline is being destroyed. The
concrete implementations should dispose the resources and forward the
request to the next intercepter, if any.</div>
</li>
</ul>
<a name="setNextInterceptor-org.apache.hadoop.yarn.server.nodemanager.amrmproxy.RequestInterceptor-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setNextInterceptor</h4>
<pre>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;nextInterceptor)</pre>
<div class="block">Sets the next intercepter in the pipeline. The concrete implementation of
this interface should always pass the request to the nextInterceptor after
inspecting the message. The last intercepter in the chain is responsible to
send the messages to the resource manager service and so the last
intercepter will not receive this method call.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nextInterceptor</code> - the next intercepter to set</dd>
</dl>
</li>
</ul>
<a name="getNextInterceptor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getNextInterceptor</h4>
<pre><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">RequestInterceptor</a>&nbsp;getNextInterceptor()</pre>
<div class="block">Returns the next intercepter in the chain.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the next intercepter in the chain</dd>
</dl>
</li>
</ul>
<a name="getApplicationContext--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getApplicationContext</h4>
<pre><a href="../../../../../../../org/apache/hadoop/yarn/server/nodemanager/amrmproxy/AMRMProxyApplicationContext.html" title="interface in org.apache.hadoop.yarn.server.nodemanager.amrmproxy">AMRMProxyApplicationContext</a>&nbsp;getApplicationContext()</pre>
<div class="block">Returns the context.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>the context</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/RequestInterceptor.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/FederationInterceptor.html" title="class in org.apache.hadoop.yarn.server.nodemanager.amrmproxy"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../../index.html?org/apache/hadoop/yarn/server/nodemanager/amrmproxy/RequestInterceptor.html" target="_top">Frames</a></li>
<li><a href="RequestInterceptor.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2008&#x2013;2021 <a href="https://www.apache.org">Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>