http://git-wip-us.apache.org/repos/asf/hadoop/blob/03fc6b1b/hadoop-yarn-project/hadoop-yarn/dev-support/jdiff/Apache_Hadoop_YARN_Client.2.6.0.xml ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/dev-support/jdiff/Apache_Hadoop_YARN_Client.2.6.0.xml b/hadoop-yarn-project/hadoop-yarn/dev-support/jdiff/Apache_Hadoop_YARN_Client.2.6.0.xml new file mode 100644 index 0000000..aa11aea --- /dev/null +++ b/hadoop-yarn-project/hadoop-yarn/dev-support/jdiff/Apache_Hadoop_YARN_Client.2.6.0.xml @@ -0,0 +1,2427 @@ +<?xml version="1.0" encoding="iso-8859-1" standalone="no"?> +<!-- + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +--> +<!-- Generated by the JDiff Javadoc doclet --> +<!-- (http://www.jdiff.org) --> +<!-- on Wed Apr 08 11:30:44 PDT 2015 --> + +<api + xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' + xsi:noNamespaceSchemaLocation='api.xsd' + name="hadoop-yarn-client 2.6.0" + jdversion="1.0.9"> + +<!-- Command line arguments = -doclet org.apache.hadoop.classification.tools.ExcludePrivateAnnotationsJDiffDoclet -docletpath /Users/llu/hadoop2_6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/target/hadoop-annotations.jar:/Users/llu/hadoop2_6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/target/jdiff.jar -verbose -classpath /Users/llu/hadoop2_6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/target/classes:/Users/llu/.m2/repository/org/apache/hadoop/hadoop-common/2.6.0/hadoop-common-2.6.0.jar:/Users/llu/.m2/repository/org/apache/commons/commons-math3/3.1.1/commons-math3-3.1.1.jar:/Users/llu/.m2/repository/xmlenc/xmlenc/0.52/xmlenc-0.52.jar:/Users/llu/.m2/repository/commons-httpclient/commons-httpclient/3.1/commons-httpclient-3.1.jar:/Users/llu/.m2/repository/commons-codec/commons-codec/1.4/commons-codec-1.4.jar:/Users/llu/.m2/repository/commons-io/commons-io/2.4/commons-io-2.4.jar:/Users/llu/.m2/repository/commons-net/commons-net/3.1/commons-net-3.1.jar:/Users/llu/.m 2/repository/commons-collections/commons-collections/3.2.1/commons-collections-3.2.1.jar:/Users/llu/.m2/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar:/Users/llu/.m2/repository/org/mortbay/jetty/jetty/6.1.26/jetty-6.1.26.jar:/Users/llu/.m2/repository/org/mortbay/jetty/jetty-util/6.1.26/jetty-util-6.1.26.jar:/Users/llu/.m2/repository/com/sun/jersey/jersey-core/1.9/jersey-core-1.9.jar:/Users/llu/.m2/repository/com/sun/jersey/jersey-json/1.9/jersey-json-1.9.jar:/Users/llu/.m2/repository/com/sun/xml/bind/jaxb-impl/2.2.3-1/jaxb-impl-2.2.3-1.jar:/Users/llu/.m2/repository/com/sun/jersey/jersey-server/1.9/jersey-server-1.9.jar:/Users/llu/.m2/repository/asm/asm/3.2/asm-3.2.jar:/Users/llu/.m2/repository/javax/servlet/jsp/jsp-api/2.1/jsp-api-2.1.jar:/Users/llu/.m2/repository/net/java/dev/jets3t/jets3t/0.9.0/jets3t-0.9.0.jar:/Users/llu/.m2/repository/org/apache/httpcomponents/httpclient/4.2.5/httpclient-4.2.5.jar:/Users/llu/.m2/repository/org/apache/httpcomponents/httpcore/4.2.5/h ttpcore-4.2.5.jar:/Users/llu/.m2/repository/com/jamesmurty/utils/java-xmlbuilder/0.4/java-xmlbuilder-0.4.jar:/Users/llu/.m2/repository/commons-configuration/commons-configuration/1.6/commons-configuration-1.6.jar:/Users/llu/.m2/repository/commons-digester/commons-digester/1.8/commons-digester-1.8.jar:/Users/llu/.m2/repository/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar:/Users/llu/.m2/repository/commons-beanutils/commons-beanutils-core/1.8.0/commons-beanutils-core-1.8.0.jar:/Users/llu/.m2/repository/org/slf4j/slf4j-api/1.7.5/slf4j-api-1.7.5.jar:/Users/llu/.m2/repository/org/slf4j/slf4j-log4j12/1.7.5/slf4j-log4j12-1.7.5.jar:/Users/llu/.m2/repository/org/codehaus/jackson/jackson-core-asl/1.9.13/jackson-core-asl-1.9.13.jar:/Users/llu/.m2/repository/org/codehaus/jackson/jackson-mapper-asl/1.9.13/jackson-mapper-asl-1.9.13.jar:/Users/llu/.m2/repository/org/apache/avro/avro/1.7.4/avro-1.7.4.jar:/Users/llu/.m2/repository/com/thoughtworks/paranamer/paranamer/2.3/para namer-2.3.jar:/Users/llu/.m2/repository/org/xerial/snappy/snappy-java/1.0.4.1/snappy-java-1.0.4.1.jar:/Users/llu/.m2/repository/com/google/protobuf/protobuf-java/2.5.0/protobuf-java-2.5.0.jar:/Users/llu/.m2/repository/com/google/code/gson/gson/2.2.4/gson-2.2.4.jar:/Users/llu/.m2/repository/org/apache/hadoop/hadoop-auth/2.6.0/hadoop-auth-2.6.0.jar:/Users/llu/.m2/repository/org/apache/directory/server/apacheds-kerberos-codec/2.0.0-M15/apacheds-kerberos-codec-2.0.0-M15.jar:/Users/llu/.m2/repository/org/apache/directory/server/apacheds-i18n/2.0.0-M15/apacheds-i18n-2.0.0-M15.jar:/Users/llu/.m2/repository/org/apache/directory/api/api-asn1-api/1.0.0-M20/api-asn1-api-1.0.0-M20.jar:/Users/llu/.m2/repository/org/apache/directory/api/api-util/1.0.0-M20/api-util-1.0.0-M20.jar:/Users/llu/.m2/repository/org/apache/curator/curator-framework/2.6.0/curator-framework-2.6.0.jar:/Users/llu/.m2/repository/com/jcraft/jsch/0.1.42/jsch-0.1.42.jar:/Users/llu/.m2/repository/org/apache/curator/curator-client/ 2.6.0/curator-client-2.6.0.jar:/Users/llu/.m2/repository/org/apache/curator/curator-recipes/2.6.0/curator-recipes-2.6.0.jar:/Users/llu/.m2/repository/com/google/code/findbugs/jsr305/1.3.9/jsr305-1.3.9.jar:/Users/llu/.m2/repository/org/htrace/htrace-core/3.0.4/htrace-core-3.0.4.jar:/Users/llu/.m2/repository/org/apache/zookeeper/zookeeper/3.4.6/zookeeper-3.4.6.jar:/Users/llu/.m2/repository/org/apache/commons/commons-compress/1.4.1/commons-compress-1.4.1.jar:/Users/llu/.m2/repository/org/tukaani/xz/1.0/xz-1.0.jar:/Users/llu/.m2/repository/com/google/guava/guava/11.0.2/guava-11.0.2.jar:/Users/llu/.m2/repository/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar:/Users/llu/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar:/Users/llu/.m2/repository/commons-cli/commons-cli/1.2/commons-cli-1.2.jar:/Users/llu/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar:/Users/llu/.m2/repository/org/apache/hadoop/hadoop-annotations/2.6.0/hadoop-annotations-2.6.0.jar:/Librar y/Java/JavaVirtualMachines/jdk1.7.0_67.jdk/Contents/Home/lib/tools.jar:/Users/llu/.m2/repository/io/netty/netty/3.6.2.Final/netty-3.6.2.Final.jar:/Users/llu/hadoop2_6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/target/hadoop-yarn-api-2.6.0.jar:/Users/llu/hadoop2_6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/target/hadoop-yarn-common-2.6.0.jar:/Users/llu/.m2/repository/javax/xml/bind/jaxb-api/2.2.2/jaxb-api-2.2.2.jar:/Users/llu/.m2/repository/javax/xml/stream/stax-api/1.0-2/stax-api-1.0-2.jar:/Users/llu/.m2/repository/javax/activation/activation/1.1/activation-1.1.jar:/Users/llu/.m2/repository/com/sun/jersey/jersey-client/1.9/jersey-client-1.9.jar:/Users/llu/.m2/repository/org/codehaus/jackson/jackson-jaxrs/1.9.13/jackson-jaxrs-1.9.13.jar:/Users/llu/.m2/repository/org/codehaus/jackson/jackson-xc/1.9.13/jackson-xc-1.9.13.jar:/Users/llu/.m2/repository/com/google/inject/extensions/guice-servlet/3.0/guice-servlet-3.0.jar:/Users/llu/.m2/repository/com/google/inject/guice/3.0/gu ice-3.0.jar:/Users/llu/.m2/repository/javax/inject/javax.inject/1/javax.inject-1.jar:/Users/llu/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/llu/.m2/repository/com/sun/jersey/contribs/jersey-guice/1.9/jersey-guice-1.9.jar:/Users/llu/.m2/repository/org/codehaus/jettison/jettison/1.1/jettison-1.1.jar -sourcepath /Users/llu/hadoop2_6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/src/main/java -apidir /Users/llu/hadoop2_6/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-client/target/site/jdiff/xml -apiname hadoop-yarn-client 2.6.0 --> +<package name="org.apache.hadoop.yarn.client.api"> + <!-- start class org.apache.hadoop.yarn.client.api.AHSClient --> + <class name="AHSClient" extends="org.apache.hadoop.service.AbstractService" + abstract="true" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <constructor name="AHSClient" type="java.lang.String" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + </constructor> + <method name="createAHSClient" return="org.apache.hadoop.yarn.client.api.AHSClient" + abstract="false" native="false" synchronized="false" + static="true" final="false" visibility="public" + deprecated="not deprecated"> + <doc> + <![CDATA[Create a new instance of AHSClient.]]> + </doc> + </method> + <method name="getApplicationReport" return="org.apache.hadoop.yarn.api.records.ApplicationReport" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="appId" type="org.apache.hadoop.yarn.api.records.ApplicationId"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get a report of the given Application. + </p> + + <p> + In secure mode, <code>YARN</code> verifies access to the application, queue + etc. before accepting the request. + </p> + + <p> + If the user does not have <code>VIEW_APP</code> access then the following + fields in the report will be set to stubbed values: + <ul> + <li>host - set to "N/A"</li> + <li>RPC port - set to -1</li> + <li>client token - set to "N/A"</li> + <li>diagnostics - set to "N/A"</li> + <li>tracking URL - set to "N/A"</li> + <li>original tracking URL - set to "N/A"</li> + <li>resource usage report - all values are -1</li> + </ul> + </p> + + @param appId + {@link ApplicationId} of the application that needs a report + @return application report + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getApplications" return="java.util.List" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get a report (ApplicationReport) of all Applications in the cluster. + </p> + + <p> + If the user does not have <code>VIEW_APP</code> access for an application + then the corresponding report will be filtered as described in + {@link #getApplicationReport(ApplicationId)}. + </p> + + @return a list of reports for all applications + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getApplicationAttemptReport" return="org.apache.hadoop.yarn.api.records.ApplicationAttemptReport" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="applicationAttemptId" type="org.apache.hadoop.yarn.api.records.ApplicationAttemptId"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get a report of the given ApplicationAttempt. + </p> + + <p> + In secure mode, <code>YARN</code> verifies access to the application, queue + etc. before accepting the request. + </p> + + @param applicationAttemptId + {@link ApplicationAttemptId} of the application attempt that needs + a report + @return application attempt report + @throws YarnException + @throws {@link ApplicationAttemptNotFoundException} if application attempt + not found + @throws IOException]]> + </doc> + </method> + <method name="getApplicationAttempts" return="java.util.List" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="applicationId" type="org.apache.hadoop.yarn.api.records.ApplicationId"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get a report of all (ApplicationAttempts) of Application in the cluster. + </p> + + @param applicationId + @return a list of reports for all application attempts for specified + application + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getContainerReport" return="org.apache.hadoop.yarn.api.records.ContainerReport" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="containerId" type="org.apache.hadoop.yarn.api.records.ContainerId"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get a report of the given Container. + </p> + + <p> + In secure mode, <code>YARN</code> verifies access to the application, queue + etc. before accepting the request. + </p> + + @param containerId + {@link ContainerId} of the container that needs a report + @return container report + @throws YarnException + @throws {@link ContainerNotFoundException} if container not found + @throws IOException]]> + </doc> + </method> + <method name="getContainers" return="java.util.List" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="applicationAttemptId" type="org.apache.hadoop.yarn.api.records.ApplicationAttemptId"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get a report of all (Containers) of ApplicationAttempt in the cluster. + </p> + + @param applicationAttemptId + @return a list of reports of all containers for specified application + attempt + @throws YarnException + @throws IOException]]> + </doc> + </method> + </class> + <!-- end class org.apache.hadoop.yarn.client.api.AHSClient --> + <!-- start class org.apache.hadoop.yarn.client.api.AMRMClient --> + <class name="AMRMClient" extends="org.apache.hadoop.service.AbstractService" + abstract="true" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <constructor name="AMRMClient" type="java.lang.String" + static="false" final="false" visibility="protected" + deprecated="not deprecated"> + </constructor> + <method name="createAMRMClient" return="org.apache.hadoop.yarn.client.api.AMRMClient" + abstract="false" native="false" synchronized="false" + static="true" final="false" visibility="public" + deprecated="not deprecated"> + <doc> + <![CDATA[Create a new instance of AMRMClient. + For usage: + <pre> + {@code + AMRMClient.<T>createAMRMClientContainerRequest() + }</pre> + @return the newly create AMRMClient instance.]]> + </doc> + </method> + <method name="registerApplicationMaster" return="org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterResponse" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="appHostName" type="java.lang.String"/> + <param name="appHostPort" type="int"/> + <param name="appTrackingUrl" type="java.lang.String"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[Register the application master. This must be called before any + other interaction + @param appHostName Name of the host on which master is running + @param appHostPort Port master is listening on + @param appTrackingUrl URL at which the master info can be seen + @return <code>RegisterApplicationMasterResponse</code> + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="allocate" return="org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="progressIndicator" type="float"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[Request additional containers and receive new container allocations. + Requests made via <code>addContainerRequest</code> are sent to the + <code>ResourceManager</code>. New containers assigned to the master are + retrieved. Status of completed containers and node health updates are also + retrieved. This also doubles up as a heartbeat to the ResourceManager and + must be made periodically. The call may not always return any new + allocations of containers. App should not make concurrent allocate + requests. May cause request loss. + + <p> + Note : If the user has not removed container requests that have already + been satisfied, then the re-register may end up sending the entire + container requests to the RM (including matched requests). Which would mean + the RM could end up giving it a lot of new allocated containers. + </p> + + @param progressIndicator Indicates progress made by the master + @return the response of the allocate request + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="unregisterApplicationMaster" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="appStatus" type="org.apache.hadoop.yarn.api.records.FinalApplicationStatus"/> + <param name="appMessage" type="java.lang.String"/> + <param name="appTrackingUrl" type="java.lang.String"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[Unregister the application master. This must be called in the end. + @param appStatus Success/Failure status of the master + @param appMessage Diagnostics message on failure + @param appTrackingUrl New URL to get master info + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="addContainerRequest" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="req" type="T"/> + <doc> + <![CDATA[Request containers for resources before calling <code>allocate</code> + @param req Resource request]]> + </doc> + </method> + <method name="removeContainerRequest" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="req" type="T"/> + <doc> + <![CDATA[Remove previous container request. The previous container request may have + already been sent to the ResourceManager. So even after the remove request + the app must be prepared to receive an allocation for the previous request + even after the remove request + @param req Resource request]]> + </doc> + </method> + <method name="releaseAssignedContainer" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="containerId" type="org.apache.hadoop.yarn.api.records.ContainerId"/> + <doc> + <![CDATA[Release containers assigned by the Resource Manager. If the app cannot use + the container or wants to give up the container then it can release them. + The app needs to make new requests for the released resource capability if + it still needs it. eg. it released non-local resources + @param containerId]]> + </doc> + </method> + <method name="getAvailableResources" return="org.apache.hadoop.yarn.api.records.Resource" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <doc> + <![CDATA[Get the currently available resources in the cluster. + A valid value is available after a call to allocate has been made + @return Currently available resources]]> + </doc> + </method> + <method name="getClusterNodeCount" return="int" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <doc> + <![CDATA[Get the current number of nodes in the cluster. + A valid values is available after a call to allocate has been made + @return Current number of nodes in the cluster]]> + </doc> + </method> + <method name="getMatchingRequests" return="java.util.List" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="priority" type="org.apache.hadoop.yarn.api.records.Priority"/> + <param name="resourceName" type="java.lang.String"/> + <param name="capability" type="org.apache.hadoop.yarn.api.records.Resource"/> + <doc> + <![CDATA[Get outstanding <code>ContainerRequest</code>s matching the given + parameters. These ContainerRequests should have been added via + <code>addContainerRequest</code> earlier in the lifecycle. For performance, + the AMRMClient may return its internal collection directly without creating + a copy. Users should not perform mutable operations on the return value. + Each collection in the list contains requests with identical + <code>Resource</code> size that fit in the given capability. In a + collection, requests will be returned in the same order as they were added. + @return Collection of request matching the parameters]]> + </doc> + </method> + <method name="updateBlacklist" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="blacklistAdditions" type="java.util.List"/> + <param name="blacklistRemovals" type="java.util.List"/> + <doc> + <![CDATA[Update application's blacklist with addition or removal resources. + + @param blacklistAdditions list of resources which should be added to the + application blacklist + @param blacklistRemovals list of resources which should be removed from the + application blacklist]]> + </doc> + </method> + <method name="setNMTokenCache" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="nmTokenCache" type="org.apache.hadoop.yarn.client.api.NMTokenCache"/> + <doc> + <![CDATA[Set the NM token cache for the <code>AMRMClient</code>. This cache must + be shared with the {@link NMClient} used to manage containers for the + <code>AMRMClient</code> + <p/> + If a NM token cache is not set, the {@link NMTokenCache#getSingleton()} + singleton instance will be used. + + @param nmTokenCache the NM token cache to use.]]> + </doc> + </method> + <method name="getNMTokenCache" return="org.apache.hadoop.yarn.client.api.NMTokenCache" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <doc> + <![CDATA[Get the NM token cache of the <code>AMRMClient</code>. This cache must be + shared with the {@link NMClient} used to manage containers for the + <code>AMRMClient</code>. + <p/> + If a NM token cache is not set, the {@link NMTokenCache#getSingleton()} + singleton instance will be used. + + @return the NM token cache.]]> + </doc> + </method> + <method name="waitFor" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="check" type="com.google.common.base.Supplier"/> + <exception name="InterruptedException" type="java.lang.InterruptedException"/> + <doc> + <![CDATA[Wait for <code>check</code> to return true for each 1000 ms. + See also {@link #waitFor(com.google.common.base.Supplier, int)} + and {@link #waitFor(com.google.common.base.Supplier, int, int)} + @param check]]> + </doc> + </method> + <method name="waitFor" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="check" type="com.google.common.base.Supplier"/> + <param name="checkEveryMillis" type="int"/> + <exception name="InterruptedException" type="java.lang.InterruptedException"/> + <doc> + <![CDATA[Wait for <code>check</code> to return true for each + <code>checkEveryMillis</code> ms. + See also {@link #waitFor(com.google.common.base.Supplier, int, int)} + @param check user defined checker + @param checkEveryMillis interval to call <code>check</code>]]> + </doc> + </method> + <method name="waitFor" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="check" type="com.google.common.base.Supplier"/> + <param name="checkEveryMillis" type="int"/> + <param name="logInterval" type="int"/> + <exception name="InterruptedException" type="java.lang.InterruptedException"/> + <doc> + <![CDATA[Wait for <code>check</code> to return true for each + <code>checkEveryMillis</code> ms. In the main loop, this method will log + the message "waiting in main loop" for each <code>logInterval</code> times + iteration to confirm the thread is alive. + @param check user defined checker + @param checkEveryMillis interval to call <code>check</code> + @param logInterval interval to log for each]]> + </doc> + </method> + </class> + <!-- end class org.apache.hadoop.yarn.client.api.AMRMClient --> + <!-- start class org.apache.hadoop.yarn.client.api.AMRMClient.ContainerRequest --> + <class name="AMRMClient.ContainerRequest" extends="java.lang.Object" + abstract="false" + static="true" final="false" visibility="public" + deprecated="not deprecated"> + <constructor name="AMRMClient.ContainerRequest" type="org.apache.hadoop.yarn.api.records.Resource, java.lang.String[], java.lang.String[], org.apache.hadoop.yarn.api.records.Priority" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <doc> + <![CDATA[Instantiates a {@link ContainerRequest} with the given constraints and + locality relaxation enabled. + + @param capability + The {@link Resource} to be requested for each container. + @param nodes + Any hosts to request that the containers are placed on. + @param racks + Any racks to request that the containers are placed on. The + racks corresponding to any hosts requested will be automatically + added to this list. + @param priority + The priority at which to request the containers. Higher + priorities have lower numerical values.]]> + </doc> + </constructor> + <constructor name="AMRMClient.ContainerRequest" type="org.apache.hadoop.yarn.api.records.Resource, java.lang.String[], java.lang.String[], org.apache.hadoop.yarn.api.records.Priority, boolean" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <doc> + <![CDATA[Instantiates a {@link ContainerRequest} with the given constraints. + + @param capability + The {@link Resource} to be requested for each container. + @param nodes + Any hosts to request that the containers are placed on. + @param racks + Any racks to request that the containers are placed on. The + racks corresponding to any hosts requested will be automatically + added to this list. + @param priority + The priority at which to request the containers. Higher + priorities have lower numerical values. + @param relaxLocality + If true, containers for this request may be assigned on hosts + and racks other than the ones explicitly requested.]]> + </doc> + </constructor> + <constructor name="AMRMClient.ContainerRequest" type="org.apache.hadoop.yarn.api.records.Resource, java.lang.String[], java.lang.String[], org.apache.hadoop.yarn.api.records.Priority, boolean, java.lang.String" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <doc> + <![CDATA[Instantiates a {@link ContainerRequest} with the given constraints. + + @param capability + The {@link Resource} to be requested for each container. + @param nodes + Any hosts to request that the containers are placed on. + @param racks + Any racks to request that the containers are placed on. The + racks corresponding to any hosts requested will be automatically + added to this list. + @param priority + The priority at which to request the containers. Higher + priorities have lower numerical values. + @param relaxLocality + If true, containers for this request may be assigned on hosts + and racks other than the ones explicitly requested. + @param nodeLabelsExpression + Set node labels to allocate resource]]> + </doc> + </constructor> + <method name="getCapability" return="org.apache.hadoop.yarn.api.records.Resource" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + </method> + <method name="getNodes" return="java.util.List" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + </method> + <method name="getRacks" return="java.util.List" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + </method> + <method name="getPriority" return="org.apache.hadoop.yarn.api.records.Priority" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + </method> + <method name="getRelaxLocality" return="boolean" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + </method> + <method name="getNodeLabelExpression" return="java.lang.String" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + </method> + <method name="toString" return="java.lang.String" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + </method> + <doc> + <![CDATA[Object to represent a single container request for resources. Scheduler + documentation should be consulted for the specifics of how the parameters + are honored. + + By default, YARN schedulers try to allocate containers at the requested + locations but they may relax the constraints in order to expedite meeting + allocations limits. They first relax the constraint to the same rack as the + requested node and then to anywhere in the cluster. The relaxLocality flag + may be used to disable locality relaxation and request containers at only + specific locations. The following conditions apply. + <ul> + <li>Within a priority, all container requests must have the same value for + locality relaxation. Either enabled or disabled.</li> + <li>If locality relaxation is disabled, then across requests, locations at + different network levels may not be specified. E.g. its invalid to make a + request for a specific node and another request for a specific rack.</li> + <li>If locality relaxation is disabled, then only within the same request, + a node and its rack may be specified together. This allows for a specific + rack with a preference for a specific node within that rack.</li> + <li></li> + </ul> + To re-enable locality relaxation at a given priority, all pending requests + with locality relaxation disabled must be first removed. Then they can be + added back with locality relaxation enabled. + + All getters return immutable values.]]> + </doc> + </class> + <!-- end class org.apache.hadoop.yarn.client.api.AMRMClient.ContainerRequest --> + <!-- start class org.apache.hadoop.yarn.client.api.InvalidContainerRequestException --> + <class name="InvalidContainerRequestException" extends="org.apache.hadoop.yarn.exceptions.YarnRuntimeException" + abstract="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <constructor name="InvalidContainerRequestException" type="java.lang.Throwable" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + </constructor> + <constructor name="InvalidContainerRequestException" type="java.lang.String" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + </constructor> + <constructor name="InvalidContainerRequestException" type="java.lang.String, java.lang.Throwable" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + </constructor> + <doc> + <![CDATA[Thrown when an arguments are combined to construct a + <code>AMRMClient.ContainerRequest</code> in an invalid way.]]> + </doc> + </class> + <!-- end class org.apache.hadoop.yarn.client.api.InvalidContainerRequestException --> + <!-- start class org.apache.hadoop.yarn.client.api.NMClient --> + <class name="NMClient" extends="org.apache.hadoop.service.AbstractService" + abstract="true" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <constructor name="NMClient" type="java.lang.String" + static="false" final="false" visibility="protected" + deprecated="not deprecated"> + </constructor> + <method name="createNMClient" return="org.apache.hadoop.yarn.client.api.NMClient" + abstract="false" native="false" synchronized="false" + static="true" final="false" visibility="public" + deprecated="not deprecated"> + <doc> + <![CDATA[Create a new instance of NMClient.]]> + </doc> + </method> + <method name="createNMClient" return="org.apache.hadoop.yarn.client.api.NMClient" + abstract="false" native="false" synchronized="false" + static="true" final="false" visibility="public" + deprecated="not deprecated"> + <param name="name" type="java.lang.String"/> + <doc> + <![CDATA[Create a new instance of NMClient.]]> + </doc> + </method> + <method name="startContainer" return="java.util.Map" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="container" type="org.apache.hadoop.yarn.api.records.Container"/> + <param name="containerLaunchContext" type="org.apache.hadoop.yarn.api.records.ContainerLaunchContext"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p>Start an allocated container.</p> + + <p>The <code>ApplicationMaster</code> or other applications that use the + client must provide the details of the allocated container, including the + Id, the assigned node's Id and the token via {@link Container}. In + addition, the AM needs to provide the {@link ContainerLaunchContext} as + well.</p> + + @param container the allocated container + @param containerLaunchContext the context information needed by the + <code>NodeManager</code> to launch the + container + @return a map between the auxiliary service names and their outputs + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="stopContainer" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="containerId" type="org.apache.hadoop.yarn.api.records.ContainerId"/> + <param name="nodeId" type="org.apache.hadoop.yarn.api.records.NodeId"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p>Stop an started container.</p> + + @param containerId the Id of the started container + @param nodeId the Id of the <code>NodeManager</code> + + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getContainerStatus" return="org.apache.hadoop.yarn.api.records.ContainerStatus" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="containerId" type="org.apache.hadoop.yarn.api.records.ContainerId"/> + <param name="nodeId" type="org.apache.hadoop.yarn.api.records.NodeId"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p>Query the status of a container.</p> + + @param containerId the Id of the started container + @param nodeId the Id of the <code>NodeManager</code> + + @return the status of a container + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="cleanupRunningContainersOnStop" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="enabled" type="boolean"/> + <doc> + <![CDATA[<p>Set whether the containers that are started by this client, and are + still running should be stopped when the client stops. By default, the + feature should be enabled.</p> However, containers will be stopped only + when service is stopped. i.e. after {@link NMClient#stop()}. + + @param enabled whether the feature is enabled or not]]> + </doc> + </method> + <method name="setNMTokenCache" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="nmTokenCache" type="org.apache.hadoop.yarn.client.api.NMTokenCache"/> + <doc> + <![CDATA[Set the NM Token cache of the <code>NMClient</code>. This cache must be + shared with the {@link AMRMClient} that requested the containers managed + by this <code>NMClient</code> + <p/> + If a NM token cache is not set, the {@link NMTokenCache#getSingleton()} + singleton instance will be used. + + @param nmTokenCache the NM token cache to use.]]> + </doc> + </method> + <method name="getNMTokenCache" return="org.apache.hadoop.yarn.client.api.NMTokenCache" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <doc> + <![CDATA[Get the NM token cache of the <code>NMClient</code>. This cache must be + shared with the {@link AMRMClient} that requested the containers managed + by this <code>NMClient</code> + <p/> + If a NM token cache is not set, the {@link NMTokenCache#getSingleton()} + singleton instance will be used. + + @return the NM token cache]]> + </doc> + </method> + </class> + <!-- end class org.apache.hadoop.yarn.client.api.NMClient --> + <!-- start class org.apache.hadoop.yarn.client.api.NMTokenCache --> + <class name="NMTokenCache" extends="java.lang.Object" + abstract="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <constructor name="NMTokenCache" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <doc> + <![CDATA[Creates a NM token cache instance.]]> + </doc> + </constructor> + <method name="getSingleton" return="org.apache.hadoop.yarn.client.api.NMTokenCache" + abstract="false" native="false" synchronized="false" + static="true" final="false" visibility="public" + deprecated="not deprecated"> + <doc> + <![CDATA[Returns the singleton NM token cache. + + @return the singleton NM token cache.]]> + </doc> + </method> + <method name="getNMToken" return="org.apache.hadoop.yarn.api.records.Token" + abstract="false" native="false" synchronized="false" + static="true" final="false" visibility="public" + deprecated="not deprecated"> + <param name="nodeAddr" type="java.lang.String"/> + <doc> + <![CDATA[Returns NMToken, null if absent. Only the singleton obtained from + {@link #getSingleton()} is looked at for the tokens. If you are using your + own NMTokenCache that is different from the singleton, use + {@link #getToken(String) } + + @param nodeAddr + @return {@link Token} NMToken required for communicating with node manager]]> + </doc> + </method> + <method name="setNMToken" + abstract="false" native="false" synchronized="false" + static="true" final="false" visibility="public" + deprecated="not deprecated"> + <param name="nodeAddr" type="java.lang.String"/> + <param name="token" type="org.apache.hadoop.yarn.api.records.Token"/> + <doc> + <![CDATA[Sets the NMToken for node address only in the singleton obtained from + {@link #getSingleton()}. If you are using your own NMTokenCache that is + different from the singleton, use {@link #setToken(String, Token) } + + @param nodeAddr + node address (host:port) + @param token + NMToken]]> + </doc> + </method> + <method name="getToken" return="org.apache.hadoop.yarn.api.records.Token" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="nodeAddr" type="java.lang.String"/> + <doc> + <![CDATA[Returns NMToken, null if absent + @param nodeAddr + @return {@link Token} NMToken required for communicating with node + manager]]> + </doc> + </method> + <method name="setToken" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="nodeAddr" type="java.lang.String"/> + <param name="token" type="org.apache.hadoop.yarn.api.records.Token"/> + <doc> + <![CDATA[Sets the NMToken for node address + @param nodeAddr node address (host:port) + @param token NMToken]]> + </doc> + </method> + <doc> + <![CDATA[NMTokenCache manages NMTokens required for an Application Master + communicating with individual NodeManagers. + <p/> + By default Yarn client libraries {@link AMRMClient} and {@link NMClient} use + {@link #getSingleton()} instance of the cache. + <ul> + <li>Using the singleton instance of the cache is appropriate when running a + single ApplicationMaster in the same JVM.</li> + <li>When using the singleton, users don't need to do anything special, + {@link AMRMClient} and {@link NMClient} are already set up to use the default + singleton {@link NMTokenCache}</li> + </ul> + <p/> + If running multiple Application Masters in the same JVM, a different cache + instance should be used for each Application Master. + <p/> + <ul> + <li> + If using the {@link AMRMClient} and the {@link NMClient}, setting up and using + an instance cache is as follows: + <p/> + + <pre> + NMTokenCache nmTokenCache = new NMTokenCache(); + AMRMClient rmClient = AMRMClient.createAMRMClient(); + NMClient nmClient = NMClient.createNMClient(); + nmClient.setNMTokenCache(nmTokenCache); + ... + </pre> + </li> + <li> + If using the {@link AMRMClientAsync} and the {@link NMClientAsync}, setting up + and using an instance cache is as follows: + <p/> + + <pre> + NMTokenCache nmTokenCache = new NMTokenCache(); + AMRMClient rmClient = AMRMClient.createAMRMClient(); + NMClient nmClient = NMClient.createNMClient(); + nmClient.setNMTokenCache(nmTokenCache); + AMRMClientAsync rmClientAsync = new AMRMClientAsync(rmClient, 1000, [AMRM_CALLBACK]); + NMClientAsync nmClientAsync = new NMClientAsync("nmClient", nmClient, [NM_CALLBACK]); + ... + </pre> + </li> + <li> + If using {@link ApplicationMasterProtocol} and + {@link ContainerManagementProtocol} directly, setting up and using an + instance cache is as follows: + <p/> + + <pre> + NMTokenCache nmTokenCache = new NMTokenCache(); + ... + ApplicationMasterProtocol amPro = ClientRMProxy.createRMProxy(conf, ApplicationMasterProtocol.class); + ... + AllocateRequest allocateRequest = ... + ... + AllocateResponse allocateResponse = rmClient.allocate(allocateRequest); + for (NMToken token : allocateResponse.getNMTokens()) { + nmTokenCache.setToken(token.getNodeId().toString(), token.getToken()); + } + ... + ContainerManagementProtocolProxy nmPro = ContainerManagementProtocolProxy(conf, nmTokenCache); + ... + nmPro.startContainer(container, containerContext); + ... + </pre> + </li> + </ul> + It is also possible to mix the usage of a client (<code>AMRMClient</code> or + <code>NMClient</code>, or the async versions of them) with a protocol proxy ( + <code>ContainerManagementProtocolProxy</code> or + <code>ApplicationMasterProtocol</code>).]]> + </doc> + </class> + <!-- end class org.apache.hadoop.yarn.client.api.NMTokenCache --> + <!-- start class org.apache.hadoop.yarn.client.api.YarnClient --> + <class name="YarnClient" extends="org.apache.hadoop.service.AbstractService" + abstract="true" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <constructor name="YarnClient" type="java.lang.String" + static="false" final="false" visibility="protected" + deprecated="not deprecated"> + </constructor> + <method name="createYarnClient" return="org.apache.hadoop.yarn.client.api.YarnClient" + abstract="false" native="false" synchronized="false" + static="true" final="false" visibility="public" + deprecated="not deprecated"> + <doc> + <![CDATA[Create a new instance of YarnClient.]]> + </doc> + </method> + <method name="createApplication" return="org.apache.hadoop.yarn.client.api.YarnClientApplication" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Obtain a {@link YarnClientApplication} for a new application, + which in turn contains the {@link ApplicationSubmissionContext} and + {@link org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationResponse} + objects. + </p> + + @return {@link YarnClientApplication} built for a new application + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="submitApplication" return="org.apache.hadoop.yarn.api.records.ApplicationId" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="appContext" type="org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Submit a new application to <code>YARN.</code> It is a blocking call - it + will not return {@link ApplicationId} until the submitted application is + submitted successfully and accepted by the ResourceManager. + </p> + + <p> + Users should provide an {@link ApplicationId} as part of the parameter + {@link ApplicationSubmissionContext} when submitting a new application, + otherwise it will throw the {@link ApplicationIdNotProvidedException}. + </p> + + <p>This internally calls {@link ApplicationClientProtocol#submitApplication + (SubmitApplicationRequest)}, and after that, it internally invokes + {@link ApplicationClientProtocol#getApplicationReport + (GetApplicationReportRequest)} and waits till it can make sure that the + application gets properly submitted. If RM fails over or RM restart + happens before ResourceManager saves the application's state, + {@link ApplicationClientProtocol + #getApplicationReport(GetApplicationReportRequest)} will throw + the {@link ApplicationNotFoundException}. This API automatically resubmits + the application with the same {@link ApplicationSubmissionContext} when it + catches the {@link ApplicationNotFoundException}</p> + + @param appContext + {@link ApplicationSubmissionContext} containing all the details + needed to submit a new application + @return {@link ApplicationId} of the accepted application + @throws YarnException + @throws IOException + @see #createApplication()]]> + </doc> + </method> + <method name="killApplication" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="applicationId" type="org.apache.hadoop.yarn.api.records.ApplicationId"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Kill an application identified by given ID. + </p> + + @param applicationId + {@link ApplicationId} of the application that needs to be killed + @throws YarnException + in case of errors or if YARN rejects the request due to + access-control restrictions. + @throws IOException + @see #getQueueAclsInfo()]]> + </doc> + </method> + <method name="getApplicationReport" return="org.apache.hadoop.yarn.api.records.ApplicationReport" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="appId" type="org.apache.hadoop.yarn.api.records.ApplicationId"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get a report of the given Application. + </p> + + <p> + In secure mode, <code>YARN</code> verifies access to the application, queue + etc. before accepting the request. + </p> + + <p> + If the user does not have <code>VIEW_APP</code> access then the following + fields in the report will be set to stubbed values: + <ul> + <li>host - set to "N/A"</li> + <li>RPC port - set to -1</li> + <li>client token - set to "N/A"</li> + <li>diagnostics - set to "N/A"</li> + <li>tracking URL - set to "N/A"</li> + <li>original tracking URL - set to "N/A"</li> + <li>resource usage report - all values are -1</li> + </ul> + </p> + + @param appId + {@link ApplicationId} of the application that needs a report + @return application report + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getAMRMToken" return="org.apache.hadoop.security.token.Token" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="appId" type="org.apache.hadoop.yarn.api.records.ApplicationId"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[Get the AMRM token of the application. + <p/> + The AMRM token is required for AM to RM scheduling operations. For + managed Application Masters Yarn takes care of injecting it. For unmanaged + Applications Masters, the token must be obtained via this method and set + in the {@link org.apache.hadoop.security.UserGroupInformation} of the + current user. + <p/> + The AMRM token will be returned only if all the following conditions are + met: + <li> + <ul>the requester is the owner of the ApplicationMaster</ul> + <ul>the application master is an unmanaged ApplicationMaster</ul> + <ul>the application master is in ACCEPTED state</ul> + </li> + Else this method returns NULL. + + @param appId {@link ApplicationId} of the application to get the AMRM token + @return the AMRM token if available + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getApplications" return="java.util.List" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get a report (ApplicationReport) of all Applications in the cluster. + </p> + + <p> + If the user does not have <code>VIEW_APP</code> access for an application + then the corresponding report will be filtered as described in + {@link #getApplicationReport(ApplicationId)}. + </p> + + @return a list of reports of all running applications + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getApplications" return="java.util.List" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="applicationTypes" type="java.util.Set"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get a report (ApplicationReport) of Applications + matching the given application types in the cluster. + </p> + + <p> + If the user does not have <code>VIEW_APP</code> access for an application + then the corresponding report will be filtered as described in + {@link #getApplicationReport(ApplicationId)}. + </p> + + @param applicationTypes + @return a list of reports of applications + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getApplications" return="java.util.List" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="applicationStates" type="java.util.EnumSet"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get a report (ApplicationReport) of Applications matching the given + application states in the cluster. + </p> + + <p> + If the user does not have <code>VIEW_APP</code> access for an application + then the corresponding report will be filtered as described in + {@link #getApplicationReport(ApplicationId)}. + </p> + + @param applicationStates + @return a list of reports of applications + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getApplications" return="java.util.List" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="applicationTypes" type="java.util.Set"/> + <param name="applicationStates" type="java.util.EnumSet"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get a report (ApplicationReport) of Applications matching the given + application types and application states in the cluster. + </p> + + <p> + If the user does not have <code>VIEW_APP</code> access for an application + then the corresponding report will be filtered as described in + {@link #getApplicationReport(ApplicationId)}. + </p> + + @param applicationTypes + @param applicationStates + @return a list of reports of applications + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getYarnClusterMetrics" return="org.apache.hadoop.yarn.api.records.YarnClusterMetrics" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get metrics ({@link YarnClusterMetrics}) about the cluster. + </p> + + @return cluster metrics + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getNodeReports" return="java.util.List" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="states" type="org.apache.hadoop.yarn.api.records.NodeState[]"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get a report of nodes ({@link NodeReport}) in the cluster. + </p> + + @param states The {@link NodeState}s to filter on. If no filter states are + given, nodes in all states will be returned. + @return A list of node reports + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getRMDelegationToken" return="org.apache.hadoop.yarn.api.records.Token" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="renewer" type="org.apache.hadoop.io.Text"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get a delegation token so as to be able to talk to YARN using those tokens. + + @param renewer + Address of the renewer who can renew these tokens when needed by + securely talking to YARN. + @return a delegation token ({@link Token}) that can be used to + talk to YARN + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getQueueInfo" return="org.apache.hadoop.yarn.api.records.QueueInfo" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="queueName" type="java.lang.String"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get information ({@link QueueInfo}) about a given <em>queue</em>. + </p> + + @param queueName + Name of the queue whose information is needed + @return queue information + @throws YarnException + in case of errors or if YARN rejects the request due to + access-control restrictions. + @throws IOException]]> + </doc> + </method> + <method name="getAllQueues" return="java.util.List" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get information ({@link QueueInfo}) about all queues, recursively if there + is a hierarchy + </p> + + @return a list of queue-information for all queues + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getRootQueueInfos" return="java.util.List" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get information ({@link QueueInfo}) about top level queues. + </p> + + @return a list of queue-information for all the top-level queues + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getChildQueueInfos" return="java.util.List" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="parent" type="java.lang.String"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get information ({@link QueueInfo}) about all the immediate children queues + of the given queue + </p> + + @param parent + Name of the queue whose child-queues' information is needed + @return a list of queue-information for all queues who are direct children + of the given parent queue. + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getQueueAclsInfo" return="java.util.List" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get information about <em>acls</em> for <em>current user</em> on all the + existing queues. + </p> + + @return a list of queue acls ({@link QueueUserACLInfo}) for + <em>current user</em> + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getApplicationAttemptReport" return="org.apache.hadoop.yarn.api.records.ApplicationAttemptReport" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="applicationAttemptId" type="org.apache.hadoop.yarn.api.records.ApplicationAttemptId"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get a report of the given ApplicationAttempt. + </p> + + <p> + In secure mode, <code>YARN</code> verifies access to the application, queue + etc. before accepting the request. + </p> + + @param applicationAttemptId + {@link ApplicationAttemptId} of the application attempt that needs + a report + @return application attempt report + @throws YarnException + @throws {@link ApplicationAttemptNotFoundException} if application attempt + not found + @throws IOException]]> + </doc> + </method> + <method name="getApplicationAttempts" return="java.util.List" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="applicationId" type="org.apache.hadoop.yarn.api.records.ApplicationId"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get a report of all (ApplicationAttempts) of Application in the cluster. + </p> + + @param applicationId + @return a list of reports for all application attempts for specified + application. + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getContainerReport" return="org.apache.hadoop.yarn.api.records.ContainerReport" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="containerId" type="org.apache.hadoop.yarn.api.records.ContainerId"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get a report of the given Container. + </p> + + <p> + In secure mode, <code>YARN</code> verifies access to the application, queue + etc. before accepting the request. + </p> + + @param containerId + {@link ContainerId} of the container that needs a report + @return container report + @throws YarnException + @throws {@link ContainerNotFoundException} if container not found. + @throws IOException]]> + </doc> + </method> + <method name="getContainers" return="java.util.List" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="applicationAttemptId" type="org.apache.hadoop.yarn.api.records.ApplicationAttemptId"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Get a report of all (Containers) of ApplicationAttempt in the cluster. + </p> + + @param applicationAttemptId + @return a list of reports of all containers for specified application + attempts + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="moveApplicationAcrossQueues" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="appId" type="org.apache.hadoop.yarn.api.records.ApplicationId"/> + <param name="queue" type="java.lang.String"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + Attempts to move the given application to the given queue. + </p> + + @param appId + Application to move. + @param queue + Queue to place it in to. + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="submitReservation" return="org.apache.hadoop.yarn.api.protocolrecords.ReservationSubmissionResponse" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="request" type="org.apache.hadoop.yarn.api.protocolrecords.ReservationSubmissionRequest"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + The interface used by clients to submit a new reservation to the + {@code ResourceManager}. + </p> + + <p> + The client packages all details of its request in a + {@link ReservationSubmissionRequest} object. This contains information + about the amount of capacity, temporal constraints, and gang needs. + Furthermore, the reservation might be composed of multiple stages, with + ordering dependencies among them. + </p> + + <p> + In order to respond, a new admission control component in the + {@code ResourceManager} performs an analysis of the resources that have + been committed over the period of time the user is requesting, verify that + the user requests can be fulfilled, and that it respect a sharing policy + (e.g., {@code CapacityOverTimePolicy}). Once it has positively determined + that the ReservationRequest is satisfiable the {@code ResourceManager} + answers with a {@link ReservationSubmissionResponse} that includes a + {@link ReservationId}. Upon failure to find a valid allocation the response + is an exception with the message detailing the reason of failure. + </p> + + <p> + The semantics guarantees that the {@link ReservationId} returned, + corresponds to a valid reservation existing in the time-range request by + the user. The amount of capacity dedicated to such reservation can vary + overtime, depending of the allocation that has been determined. But it is + guaranteed to satisfy all the constraint expressed by the user in the + {@link ReservationDefinition} + </p> + + @param request request to submit a new Reservation + @return response contains the {@link ReservationId} on accepting the + submission + @throws YarnException if the reservation cannot be created successfully + @throws IOException]]> + </doc> + </method> + <method name="updateReservation" return="org.apache.hadoop.yarn.api.protocolrecords.ReservationUpdateResponse" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="request" type="org.apache.hadoop.yarn.api.protocolrecords.ReservationUpdateRequest"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + The interface used by clients to update an existing Reservation. This is + referred to as a re-negotiation process, in which a user that has + previously submitted a Reservation. + </p> + + <p> + The allocation is attempted by virtually substituting all previous + allocations related to this Reservation with new ones, that satisfy the new + {@link ReservationDefinition}. Upon success the previous allocation is + atomically substituted by the new one, and on failure (i.e., if the system + cannot find a valid allocation for the updated request), the previous + allocation remains valid. + </p> + + @param request to update an existing Reservation (the + {@link ReservationUpdateRequest} should refer to an existing valid + {@link ReservationId}) + @return response empty on successfully updating the existing reservation + @throws YarnException if the request is invalid or reservation cannot be + updated successfully + @throws IOException]]> + </doc> + </method> + <method name="deleteReservation" return="org.apache.hadoop.yarn.api.protocolrecords.ReservationDeleteResponse" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="request" type="org.apache.hadoop.yarn.api.protocolrecords.ReservationDeleteRequest"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + The interface used by clients to remove an existing Reservation. + </p> + + @param request to remove an existing Reservation (the + {@link ReservationDeleteRequest} should refer to an existing valid + {@link ReservationId}) + @return response empty on successfully deleting the existing reservation + @throws YarnException if the request is invalid or reservation cannot be + deleted successfully + @throws IOException]]> + </doc> + </method> + <method name="getNodeToLabels" return="java.util.Map" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + The interface used by client to get node to labels mappings in existing cluster + </p> + + @return node to labels mappings + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="getClusterNodeLabels" return="java.util.Set" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[<p> + The interface used by client to get node labels in the cluster + </p> + + @return cluster node labels collection + @throws YarnException + @throws IOException]]> + </doc> + </method> + </class> + <!-- end class org.apache.hadoop.yarn.client.api.YarnClient --> + <!-- start class org.apache.hadoop.yarn.client.api.YarnClientApplication --> + <class name="YarnClientApplication" extends="java.lang.Object" + abstract="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <constructor name="YarnClientApplication" type="org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationResponse, org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + </constructor> + <method name="getNewApplicationResponse" return="org.apache.hadoop.yarn.api.protocolrecords.GetNewApplicationResponse" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + </method> + <method name="getApplicationSubmissionContext" return="org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + </method> + </class> + <!-- end class org.apache.hadoop.yarn.client.api.YarnClientApplication --> +</package> +<package name="org.apache.hadoop.yarn.client.api.async"> + <!-- start class org.apache.hadoop.yarn.client.api.async.AMRMClientAsync --> + <class name="AMRMClientAsync" extends="org.apache.hadoop.service.AbstractService" + abstract="true" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <constructor name="AMRMClientAsync" type="int, org.apache.hadoop.yarn.client.api.async.AMRMClientAsync.CallbackHandler" + static="false" final="false" visibility="protected" + deprecated="not deprecated"> + </constructor> + <constructor name="AMRMClientAsync" type="org.apache.hadoop.yarn.client.api.AMRMClient, int, org.apache.hadoop.yarn.client.api.async.AMRMClientAsync.CallbackHandler" + static="false" final="false" visibility="protected" + deprecated="not deprecated"> + </constructor> + <method name="createAMRMClientAsync" return="org.apache.hadoop.yarn.client.api.async.AMRMClientAsync" + abstract="false" native="false" synchronized="false" + static="true" final="false" visibility="public" + deprecated="not deprecated"> + <param name="intervalMs" type="int"/> + <param name="callbackHandler" type="org.apache.hadoop.yarn.client.api.async.AMRMClientAsync.CallbackHandler"/> + </method> + <method name="createAMRMClientAsync" return="org.apache.hadoop.yarn.client.api.async.AMRMClientAsync" + abstract="false" native="false" synchronized="false" + static="true" final="false" visibility="public" + deprecated="not deprecated"> + <param name="client" type="org.apache.hadoop.yarn.client.api.AMRMClient"/> + <param name="intervalMs" type="int"/> + <param name="callbackHandler" type="org.apache.hadoop.yarn.client.api.async.AMRMClientAsync.CallbackHandler"/> + </method> + <method name="setHeartbeatInterval" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="interval" type="int"/> + </method> + <method name="getMatchingRequests" return="java.util.List" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="priority" type="org.apache.hadoop.yarn.api.records.Priority"/> + <param name="resourceName" type="java.lang.String"/> + <param name="capability" type="org.apache.hadoop.yarn.api.records.Resource"/> + </method> + <method name="registerApplicationMaster" return="org.apache.hadoop.yarn.api.protocolrecords.RegisterApplicationMasterResponse" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="appHostName" type="java.lang.String"/> + <param name="appHostPort" type="int"/> + <param name="appTrackingUrl" type="java.lang.String"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[Registers this application master with the resource manager. On successful + registration, starts the heartbeating thread. + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="unregisterApplicationMaster" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="appStatus" type="org.apache.hadoop.yarn.api.records.FinalApplicationStatus"/> + <param name="appMessage" type="java.lang.String"/> + <param name="appTrackingUrl" type="java.lang.String"/> + <exception name="YarnException" type="org.apache.hadoop.yarn.exceptions.YarnException"/> + <exception name="IOException" type="java.io.IOException"/> + <doc> + <![CDATA[Unregister the application master. This must be called in the end. + @param appStatus Success/Failure status of the master + @param appMessage Diagnostics message on failure + @param appTrackingUrl New URL to get master info + @throws YarnException + @throws IOException]]> + </doc> + </method> + <method name="addContainerRequest" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="req" type="T"/> + <doc> + <![CDATA[Request containers for resources before calling <code>allocate</code> + @param req Resource request]]> + </doc> + </method> + <method name="removeContainerRequest" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="req" type="T"/> + <doc> + <![CDATA[Remove previous container request. The previous container request may have + already been sent to the ResourceManager. So even after the remove request + the app must be prepared to receive an allocation for the previous request + even after the remove request + @param req Resource request]]> + </doc> + </method> + <method name="releaseAssignedContainer" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="containerId" type="org.apache.hadoop.yarn.api.records.ContainerId"/> + <doc> + <![CDATA[Release containers assigned by the Resource Manager. If the app cannot use + the container or wants to give up the container then it can release them. + The app needs to make new requests for the released resource capability if + it still needs it. eg. it released non-local resources + @param containerId]]> + </doc> + </method> + <method name="getAvailableResources" return="org.apache.hadoop.yarn.api.records.Resource" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <doc> + <![CDATA[Get the currently available resources in the cluster. + A valid value is available after a call to allocate has been made + @return Currently available resources]]> + </doc> + </method> + <method name="getClusterNodeCount" return="int" + abstract="true" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <doc> + <![CDATA[Get the current number of nodes in the cluster. + A valid values is available after a call to allocate has been made + @return Current number of nodes in the cluster]]> + </doc> + </method> + <method name="waitFor" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="check" type="com.google.common.base.Supplier"/> + <exception name="InterruptedException" type="java.lang.InterruptedException"/> + <doc> + <![CDATA[Wait for <code>check</code> to return true for each 1000 ms. + See also {@link #waitFor(com.google.common.base.Supplier, int)} + and {@link #waitFor(com.google.common.base.Supplier, int, int)} + @param check]]> + </doc> + </method> + <method name="waitFor" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="check" type="com.google.common.base.Supplier"/> + <param name="checkEveryMillis" type="int"/> + <exception name="InterruptedException" type="java.lang.InterruptedException"/> + <doc> + <![CDATA[Wait for <code>check</code> to return true for each + <code>checkEveryMillis</code> ms. + See also {@link #waitFor(com.google.common.base.Supplier, int, int)} + @param check user defined checker + @param checkEveryMillis interval to call <code>check</code>]]> + </doc> + </method> + <method name="waitFor" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="check" type="com.google.common.base.Supplier"/> + <param name="checkEveryMillis" type="int"/> + <param name="logInterval" type="int"/> + <exception name="InterruptedException" type="java.lang.InterruptedException"/> + <doc> + <![CDATA[Wait for <code>check</code> to return true for each + <code>checkEveryMillis</code> ms. In the main loop, this method will log + the message "waiting in main loop" for each <code>logInterval</code> times + iteration to confirm the thread is alive. + @param check user defined checker + @param checkEveryMillis interval to call <code>check</code> + @param logInterval interval to log for each]]> + </doc> + </method> + <field name="client" type="org.apache.hadoop.yarn.client.api.AMRMClient" + transient="false" volatile="false" + static="false" final="true" visibility="protected" + deprecated="not deprecated"> + </field> + <field name="handler" type="org.apache.hadoop.yarn.client.api.async.AMRMClientAsync.CallbackHandler" + transient="false" volatile="false" + static="false" final="true" visibility="protected" + deprecated="not deprecated"> + </field> + <field name="heartbeatIntervalMs" type="java.util.concurrent.atomic.AtomicInteger" + transient="false" volatile="false" + static="false" final="true" visibility="protected" + deprecated="not deprecated"> + </field> + <doc> + <![CDATA[<code>AMRMClientAsync</code> handles communication with the ResourceManager + and provides asynchronous updates on events such as container allocations and + completions. It contains a thread that sends periodic heartbeats to the + ResourceManager. + + It should be used by implementing a CallbackHandler: + <pre> + {@code + class MyCallbackHandler implements AMRMClientAsync.CallbackHandler { + public void onContainersAllocated(List<Container> containers) { + [run tasks on the containers] + } + + public void onContainersCompleted(List<ContainerStatus> statuses) { + [update progress, check whether app is done] + } + + public void onNodesUpdated(List<NodeReport> updated) {} + + public void onReboot() {} + } + } + </pre> + + The client's lifecycle should be managed similarly to the following: + + <pre> + {@code + AMRMClientAsync asyncClient = + createAMRMClientAsync(appAttId, 1000, new MyCallbackhandler()); + asyncClient.init(conf); + asyncClient.start(); + RegisterApplicationMasterResponse response = asyncClient + .registerApplicationMaster(appMasterHostname, appMasterRpcPort, + appMasterTrackingUrl); + asyncClient.addContainerRequest(containerRequest); + [... wait for application to complete] + asyncClient.unregisterApplicationMaster(status, appMsg, trackingUrl); + asyncClient.stop(); + } + </pre>]]> + </doc> + </class> + <!-- end class org.apache.hadoop.yarn.client.api.async.AMRMClientAsync --> + <!-- start interface org.apache.hadoop.yarn.client.api.async.AMRMClientAsync.CallbackHandler --> + <interface name="AMRMClientAsync.CallbackHandler" abstract="true" + static="true" final="false" visibility="public" + deprecated="not deprecated"> + <method name="onContainersCompleted" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="statuses" type="java.util.List"/> + <doc> + <![CDATA[Called when the ResourceManager responds to a heartbeat with completed + containers. If the response contains both completed containers and + allocated containers, this will be called before containersAllocated.]]> + </doc> + </method> + <method name="onContainersAllocated" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="containers" type="java.util.List"/> + <doc> + <![CDATA[Called when the ResourceManager responds to a heartbeat with allocated + containers. If the response containers both completed containers and + allocated containers, this will be called after containersCompleted.]]> + </doc> + </method> + <method name="onShutdownRequest" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <doc> + <![CDATA[Called when the ResourceManager wants the ApplicationMaster to shutdown + for being out of sync etc. The ApplicationMaster should not unregister + with the RM unless the ApplicationMaster wants to be the last attempt.]]> + </doc> + </method> + <method name="onNodesUpdated" + abstract="false" native="false" synchronized="false" + static="false" final="false" visibility="public" + deprecated="not deprecated"> + <param name="updatedNodes" type="java.util.List"/> + <doc> + <![CDATA[Called when nodes tracked by the ResourceManager have changed in health, + availability etc.]]> + <
<TRUNCATED> --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org