|
@@ -18,42 +18,60 @@
|
|
|
|
|
|
package org.apache.hadoop.yarn.api;
|
|
|
|
|
|
+import java.io.IOException;
|
|
|
+
|
|
|
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
|
|
+import org.apache.hadoop.classification.InterfaceAudience.Public;
|
|
|
+import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
|
|
import org.apache.hadoop.yarn.api.protocolrecords.CancelDelegationTokenRequest;
|
|
|
import org.apache.hadoop.yarn.api.protocolrecords.CancelDelegationTokenResponse;
|
|
|
+import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationAttemptReportRequest;
|
|
|
+import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationAttemptReportResponse;
|
|
|
+import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationAttemptsRequest;
|
|
|
+import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationAttemptsResponse;
|
|
|
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationReportRequest;
|
|
|
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationReportResponse;
|
|
|
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationsRequest;
|
|
|
import org.apache.hadoop.yarn.api.protocolrecords.GetApplicationsResponse;
|
|
|
+import org.apache.hadoop.yarn.api.protocolrecords.GetContainerReportRequest;
|
|
|
+import org.apache.hadoop.yarn.api.protocolrecords.GetContainerReportResponse;
|
|
|
+import org.apache.hadoop.yarn.api.protocolrecords.GetContainersRequest;
|
|
|
+import org.apache.hadoop.yarn.api.protocolrecords.GetContainersResponse;
|
|
|
import org.apache.hadoop.yarn.api.protocolrecords.GetDelegationTokenRequest;
|
|
|
import org.apache.hadoop.yarn.api.protocolrecords.GetDelegationTokenResponse;
|
|
|
import org.apache.hadoop.yarn.api.protocolrecords.RenewDelegationTokenRequest;
|
|
|
import org.apache.hadoop.yarn.api.protocolrecords.RenewDelegationTokenResponse;
|
|
|
+import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
|
|
|
+import org.apache.hadoop.yarn.api.records.ApplicationAttemptReport;
|
|
|
import org.apache.hadoop.yarn.api.records.ApplicationId;
|
|
|
import org.apache.hadoop.yarn.api.records.ApplicationReport;
|
|
|
+import org.apache.hadoop.yarn.api.records.ContainerId;
|
|
|
+import org.apache.hadoop.yarn.api.records.ContainerReport;
|
|
|
import org.apache.hadoop.yarn.api.records.Token;
|
|
|
import org.apache.hadoop.yarn.exceptions.YarnException;
|
|
|
|
|
|
/**
|
|
|
- * <p>The protocol between clients and the <code>ApplicationHistoryService</code>
|
|
|
- * to get information on completed applications etc.</p>
|
|
|
+ * <p>The protocol between clients and the <code>ApplicationHistoryServer</code>
|
|
|
+ * to get the information of completed applications etc.</p>
|
|
|
*/
|
|
|
+@Public
|
|
|
+@Unstable
|
|
|
public interface ApplicationHistoryProtocol {
|
|
|
|
|
|
/**
|
|
|
* <p>The interface used by clients to get a report of an Application from
|
|
|
- * the <code>HistoryServer</code>.</p>
|
|
|
- *
|
|
|
+ * the <code>ResourceManager</code>.</p>
|
|
|
+ *
|
|
|
* <p>The client, via {@link GetApplicationReportRequest} provides the
|
|
|
* {@link ApplicationId} of the application.</p>
|
|
|
*
|
|
|
- * <p> In secure mode,the <code>HistoryServer</code> verifies access to the
|
|
|
- * application etc. before accepting the request.</p>
|
|
|
- *
|
|
|
- * <p>The <code>HistoryServer</code> responds with a
|
|
|
+ * <p> In secure mode,the <code>ApplicationHistoryServer</code> verifies
|
|
|
+ * access to the application, queue etc. before accepting the request.</p>
|
|
|
+ *
|
|
|
+ * <p>The <code>ApplicationHistoryServer</code> responds with a
|
|
|
* {@link GetApplicationReportResponse} which includes the
|
|
|
* {@link ApplicationReport} for the application.</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>
|
|
@@ -69,43 +87,167 @@ public interface ApplicationHistoryProtocol {
|
|
|
* @param request request for an application report
|
|
|
* @return application report
|
|
|
* @throws YarnException
|
|
|
+ * @throws IOException
|
|
|
*/
|
|
|
+ @Public
|
|
|
+ @Unstable
|
|
|
public GetApplicationReportResponse getApplicationReport(
|
|
|
- GetApplicationReportRequest request) throws YarnException;
|
|
|
+ GetApplicationReportRequest request) throws YarnException, IOException;
|
|
|
|
|
|
/**
|
|
|
* <p>The interface used by clients to get a report of all Applications
|
|
|
- * in the cluster from the <code>HistoryServer</code>.</p>
|
|
|
- *
|
|
|
- * <p>The <code>HistoryServer</code> responds with a
|
|
|
- * {@link GetApplicationsRequest} which includes the
|
|
|
+ * in the cluster from the <code>ApplicationHistoryServer</code>.</p>
|
|
|
+ *
|
|
|
+ * <p>The <code>ApplicationHistoryServer</code> responds with a
|
|
|
+ * {@link GetApplicationsResponse} which includes a list of
|
|
|
* {@link ApplicationReport} for all the applications.</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(GetApplicationReportRequest)}.
|
|
|
* </p>
|
|
|
*
|
|
|
- * @param request request for report on all running applications
|
|
|
- * @return report on all running applications
|
|
|
+ * @param request request for reports on all the applications
|
|
|
+ * @return report on applications matching the given application types
|
|
|
+ * defined in the request
|
|
|
* @throws YarnException
|
|
|
+ * @throws IOException
|
|
|
*/
|
|
|
- public GetApplicationsResponse getApplications(
|
|
|
- GetApplicationsRequest request) throws YarnException;
|
|
|
+ @Public
|
|
|
+ @Unstable
|
|
|
+ public GetApplicationsResponse getApplications(GetApplicationsRequest request)
|
|
|
+ throws YarnException, IOException;
|
|
|
|
|
|
/**
|
|
|
- * <p>The interface used by clients to get delegation token, enabling the
|
|
|
- * containers to be able to talk to the service using those tokens.
|
|
|
+ * <p>The interface used by clients to get a report of an Application Attempt
|
|
|
+ * from the <code>ApplicationHistoryServer</code>.</p>
|
|
|
+ *
|
|
|
+ * <p>The client, via {@link GetApplicationAttemptReportRequest} provides the
|
|
|
+ * {@link ApplicationAttemptId} of the application attempt.</p>
|
|
|
+ *
|
|
|
+ * <p>In secure mode,the <code>ApplicationHistoryServer</code> verifies access
|
|
|
+ * to the method before accepting the request.</p>
|
|
|
+ *
|
|
|
+ * <p>The <code>ApplicationHistoryServer</code> responds with a
|
|
|
+ * {@link GetApplicationAttemptReportResponse} which includes the
|
|
|
+ * {@link ApplicationAttemptReport} for the application attempt.</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 </li>
|
|
|
+ * <li>RPC port </li>
|
|
|
+ * <li>client token </li>
|
|
|
+ * <li>diagnostics - set to "N/A"</li>
|
|
|
+ * <li>tracking URL </li>
|
|
|
+ * </ul>
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @param request
|
|
|
+ * request for an application attempt report
|
|
|
+ * @return application attempt report
|
|
|
+ * @throws YarnException
|
|
|
+ * @throws IOException
|
|
|
+ */
|
|
|
+ @Public
|
|
|
+ @Unstable
|
|
|
+ public GetApplicationAttemptReportResponse getApplicationAttemptReport(
|
|
|
+ GetApplicationAttemptReportRequest request) throws YarnException,
|
|
|
+ IOException;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * <p>The interface used by clients to get a report of all Application
|
|
|
+ * attempts in the cluster from the <code>ApplicationHistoryServer</code>.</p>
|
|
|
+ *
|
|
|
+ * <p>The <code>ApplicationHistoryServer</code> responds with a
|
|
|
+ * {@link GetApplicationAttemptsRequest} which includes the
|
|
|
+ * {@link ApplicationAttemptReport} for all the applications attempts of a
|
|
|
+ * specified application attempt.</p>
|
|
|
*
|
|
|
- * <p> The <code>HistoryServer</code> responds with the delegation token
|
|
|
- * {@link Token} that can be used by the client to speak to this
|
|
|
- * service.
|
|
|
+ * <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 #getApplicationAttemptReport(GetApplicationAttemptReportRequest)}.</p>
|
|
|
+ *
|
|
|
+ * @param request
|
|
|
+ * request for reports on all application attempts of an application
|
|
|
+ * @return reports on all application attempts of an application
|
|
|
+ * @throws YarnException
|
|
|
+ * @throws IOException
|
|
|
+ */
|
|
|
+ @Public
|
|
|
+ @Unstable
|
|
|
+ public GetApplicationAttemptsResponse getApplicationAttempts(
|
|
|
+ GetApplicationAttemptsRequest request) throws YarnException, IOException;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * <p>The interface used by clients to get a report of an Container from the
|
|
|
+ * <code>ApplicationHistoryServer</code>.</p>
|
|
|
+ *
|
|
|
+ * <p>The client, via {@link GetContainerReportRequest} provides the
|
|
|
+ * {@link ContainerId} of the container.</p>
|
|
|
+ *
|
|
|
+ * <p>In secure mode,the <code>ApplicationHistoryServer</code> verifies access
|
|
|
+ * to the method before accepting the request.</p>
|
|
|
+ *
|
|
|
+ * <p>The <code>ApplicationHistoryServer</code> responds with a
|
|
|
+ * {@link GetContainerReportResponse} which includes the
|
|
|
+ * {@link ContainerReport} for the container.</p>
|
|
|
+ *
|
|
|
+ * @param request
|
|
|
+ * request for a container report
|
|
|
+ * @return container report
|
|
|
+ * @throws YarnException
|
|
|
+ * @throws IOException
|
|
|
+ */
|
|
|
+ @Public
|
|
|
+ @Unstable
|
|
|
+ public GetContainerReportResponse getContainer(
|
|
|
+ GetContainerReportRequest request) throws YarnException, IOException;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * <p>The interface used by clients to get a report of Containers for an
|
|
|
+ * application attempt from the <code>ApplciationHistoryServer</code>.</p>
|
|
|
+ *
|
|
|
+ * <p>The client, via {@link GetContainersRequest} provides the
|
|
|
+ * {@link ApplicationAttemptId} of the application attempt.</p>
|
|
|
+ *
|
|
|
+ * <p>In secure mode,the <code>ApplicationHistoryServer</code> verifies access
|
|
|
+ * to the method before accepting the request.</p>
|
|
|
+ *
|
|
|
+ * <p>The <code>ApplicationHistoryServer</code> responds with a
|
|
|
+ * {@link GetContainersResponse} which includes a list of
|
|
|
+ * {@link ContainerReport} for all the containers of a specific application
|
|
|
+ * attempt.</p>
|
|
|
+ *
|
|
|
+ * @param request
|
|
|
+ * request for a list of container reports of an application attempt.
|
|
|
+ * @return reports on all containers of an application attempt
|
|
|
+ * @throws YarnException
|
|
|
+ * @throws IOException
|
|
|
+ */
|
|
|
+ @Public
|
|
|
+ @Unstable
|
|
|
+ public GetContainersResponse getContainers(GetContainersRequest request)
|
|
|
+ throws YarnException, IOException;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * <p>The interface used by clients to get delegation token, enabling the
|
|
|
+ * containers to be able to talk to the service using those tokens.</p>
|
|
|
+ *
|
|
|
+ * <p>The <code>ApplicationHistoryServer</code> responds with the delegation
|
|
|
+ * token {@link Token} that can be used by the client to speak to this
|
|
|
+ * service.</p>
|
|
|
+ *
|
|
|
* @param request request to get a delegation token for the client.
|
|
|
* @return delegation token that can be used to talk to this service
|
|
|
* @throws YarnException
|
|
|
+ * @throws IOException
|
|
|
*/
|
|
|
+ @Public
|
|
|
+ @Unstable
|
|
|
public GetDelegationTokenResponse getDelegationToken(
|
|
|
- GetDelegationTokenRequest request) throws YarnException;
|
|
|
+ GetDelegationTokenRequest request) throws YarnException, IOException;
|
|
|
|
|
|
/**
|
|
|
* Renew an existing delegation token.
|
|
@@ -113,10 +255,12 @@ public interface ApplicationHistoryProtocol {
|
|
|
* @param request the delegation token to be renewed.
|
|
|
* @return the new expiry time for the delegation token.
|
|
|
* @throws YarnException
|
|
|
+ * @throws IOException
|
|
|
*/
|
|
|
@Private
|
|
|
+ @Unstable
|
|
|
public RenewDelegationTokenResponse renewDelegationToken(
|
|
|
- RenewDelegationTokenRequest request) throws YarnException;
|
|
|
+ RenewDelegationTokenRequest request) throws YarnException, IOException;
|
|
|
|
|
|
/**
|
|
|
* Cancel an existing delegation token.
|
|
@@ -124,8 +268,10 @@ public interface ApplicationHistoryProtocol {
|
|
|
* @param request the delegation token to be cancelled.
|
|
|
* @return an empty response.
|
|
|
* @throws YarnException
|
|
|
+ * @throws IOException
|
|
|
*/
|
|
|
@Private
|
|
|
+ @Unstable
|
|
|
public CancelDelegationTokenResponse cancelDelegationToken(
|
|
|
- CancelDelegationTokenRequest request) throws YarnException;
|
|
|
+ CancelDelegationTokenRequest request) throws YarnException, IOException;
|
|
|
}
|