Merge -r 1163068:1163069 from trunk to branch-0.23 to fix MAPREDUCE-2897.
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/branches/branch-0.23@1163070 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
e123403fda
commit
ea92e62344
|
@ -1170,6 +1170,9 @@ Release 0.23.0 - Unreleased
|
||||||
|
|
||||||
MAPREDUCE-2886. Fix Javadoc warnings in MapReduce. (mahadev)
|
MAPREDUCE-2886. Fix Javadoc warnings in MapReduce. (mahadev)
|
||||||
|
|
||||||
|
MAPREDUCE-2897. Javadoc for ClientRMProtocol protocol and related records.
|
||||||
|
(acmurthy)
|
||||||
|
|
||||||
Release 0.22.0 - Unreleased
|
Release 0.22.0 - Unreleased
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -89,6 +89,11 @@ public interface AMRMProtocol {
|
||||||
* of {@link ResourceRequest} and returns unused {@link Container} allocated
|
* of {@link ResourceRequest} and returns unused {@link Container} allocated
|
||||||
* to it via {@link AllocateRequest}.</p>
|
* to it via {@link AllocateRequest}.</p>
|
||||||
*
|
*
|
||||||
|
* <p>This also doubles up as a <em>heartbeat</em> to let the
|
||||||
|
* <code>ResourceManager</code> know that the <code>ApplicationMaster</code>
|
||||||
|
* is alive. Thus, applications should use periodically make this call to
|
||||||
|
* be kept alive.</p>
|
||||||
|
*
|
||||||
* <p>The <code>ResourceManager</code> responds with list of allocated
|
* <p>The <code>ResourceManager</code> responds with list of allocated
|
||||||
* {@link Container}, status of completed containers and headroom information
|
* {@link Container}, status of completed containers and headroom information
|
||||||
* for the application.</p>
|
* for the application.</p>
|
||||||
|
|
|
@ -18,6 +18,9 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api;
|
package org.apache.hadoop.yarn.api;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
|
||||||
import org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationRequest;
|
import org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationRequest;
|
||||||
import org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationResponse;
|
import org.apache.hadoop.yarn.api.protocolrecords.FinishApplicationResponse;
|
||||||
import org.apache.hadoop.yarn.api.protocolrecords.GetAllApplicationsRequest;
|
import org.apache.hadoop.yarn.api.protocolrecords.GetAllApplicationsRequest;
|
||||||
|
@ -36,17 +39,190 @@ import org.apache.hadoop.yarn.api.protocolrecords.GetQueueUserAclsInfoRequest;
|
||||||
import org.apache.hadoop.yarn.api.protocolrecords.GetQueueUserAclsInfoResponse;
|
import org.apache.hadoop.yarn.api.protocolrecords.GetQueueUserAclsInfoResponse;
|
||||||
import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationRequest;
|
import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationRequest;
|
||||||
import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationResponse;
|
import org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationResponse;
|
||||||
|
import org.apache.hadoop.yarn.api.records.ApplicationId;
|
||||||
|
import org.apache.hadoop.yarn.api.records.ApplicationReport;
|
||||||
|
import org.apache.hadoop.yarn.api.records.ContainerLaunchContext;
|
||||||
|
import org.apache.hadoop.yarn.api.records.NodeReport;
|
||||||
|
import org.apache.hadoop.yarn.api.records.Resource;
|
||||||
|
import org.apache.hadoop.yarn.api.records.YarnClusterMetrics;
|
||||||
import org.apache.hadoop.yarn.exceptions.YarnRemoteException;
|
import org.apache.hadoop.yarn.exceptions.YarnRemoteException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The protocol between clients and the <code>ResourceManager</code>
|
||||||
|
* to submit/abort jobs and to get information on applications, cluster metrics,
|
||||||
|
* nodes, queues and ACLs.</p>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface ClientRMProtocol {
|
public interface ClientRMProtocol {
|
||||||
public GetNewApplicationIdResponse getNewApplicationId(GetNewApplicationIdRequest request) throws YarnRemoteException;
|
/**
|
||||||
public SubmitApplicationResponse submitApplication(SubmitApplicationRequest request) throws YarnRemoteException;
|
* <p>The interface used by clients to obtain a new {@link ApplicationId} for
|
||||||
public FinishApplicationResponse finishApplication(FinishApplicationRequest request) throws YarnRemoteException;
|
* submitting new applications.</p>
|
||||||
|
*
|
||||||
|
* <p>The <code>ResourceManager</code> responds with a new, monotonically
|
||||||
|
* increasing, {@link ApplicationId} which is used by the client to submit
|
||||||
|
* a new application.</p>
|
||||||
|
*
|
||||||
|
* @param request request to get a new <code>ApplicationId</code>
|
||||||
|
* @return new <code>ApplicationId</code> to be used to submit an application
|
||||||
|
* @throws YarnRemoteException
|
||||||
|
* @see #submitApplication(SubmitApplicationRequest)
|
||||||
|
*/
|
||||||
|
public GetNewApplicationIdResponse getNewApplicationId(
|
||||||
|
GetNewApplicationIdRequest request)
|
||||||
|
throws YarnRemoteException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The interface used by clients to submit a new application to the
|
||||||
|
* <code>ResourceManager.</code></p>
|
||||||
|
*
|
||||||
|
* <p>The client is required to provide details such as queue,
|
||||||
|
* {@link Resource} required to run the <code>ApplicationMaster</code>,
|
||||||
|
* the equivalent of {@link ContainerLaunchContext} for launching
|
||||||
|
* the <code>ApplicationMaster</code> etc. via the
|
||||||
|
* {@link SubmitApplicationRequest}.</p>
|
||||||
|
*
|
||||||
|
* <p>Currently the <code>ResourceManager</code> sends an immediate (empty)
|
||||||
|
* {@link SubmitApplicationResponse} on accepting the submission and throws
|
||||||
|
* an exception if it rejects the submission.</p>
|
||||||
|
*
|
||||||
|
* <p> In secure mode,the <code>ResourceManager</code> verifies access to
|
||||||
|
* queues etc. before accepting the application submission.</p>
|
||||||
|
*
|
||||||
|
* @param request request to submit a new application
|
||||||
|
* @return (empty) response on accepting the submission
|
||||||
|
* @throws YarnRemoteException
|
||||||
|
* @see #getNewApplicationId(GetNewApplicationIdRequest)
|
||||||
|
*/
|
||||||
|
public SubmitApplicationResponse submitApplication(
|
||||||
|
SubmitApplicationRequest request)
|
||||||
|
throws YarnRemoteException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The interface used by clients to request the
|
||||||
|
* <code>ResourceManager</code> to abort submitted application.</p>
|
||||||
|
*
|
||||||
|
* <p>The client, via {@link FinishApplicationRequest} provides the
|
||||||
|
* {@link ApplicationId} of the application to be aborted.</p>
|
||||||
|
*
|
||||||
|
* <p> In secure mode,the <code>ResourceManager</code> verifies access to the
|
||||||
|
* application, queue etc. before terminating the application.</p>
|
||||||
|
*
|
||||||
|
* <p>Currently, the <code>ResourceManager</code> returns an empty response
|
||||||
|
* on success and throws an exception on rejecting the request.</p>
|
||||||
|
*
|
||||||
|
* @param request request to abort a submited application
|
||||||
|
* @return <code>ResourceManager</code> returns an empty response
|
||||||
|
* on success and throws an exception on rejecting the request
|
||||||
|
* @throws YarnRemoteException
|
||||||
|
* @see #getQueueUserAcls(GetQueueUserAclsInfoRequest)
|
||||||
|
*/
|
||||||
|
public FinishApplicationResponse finishApplication(
|
||||||
|
FinishApplicationRequest request)
|
||||||
|
throws YarnRemoteException;
|
||||||
|
|
||||||
public GetApplicationReportResponse getApplicationReport(GetApplicationReportRequest request) throws YarnRemoteException;
|
/**
|
||||||
public GetClusterMetricsResponse getClusterMetrics(GetClusterMetricsRequest request) throws YarnRemoteException;
|
* <p>The interface used by clients to get a report of an Application from
|
||||||
public GetAllApplicationsResponse getAllApplications(GetAllApplicationsRequest request) throws YarnRemoteException;
|
* the <code>ResourceManager</code>.</p>
|
||||||
public GetClusterNodesResponse getClusterNodes(GetClusterNodesRequest request) throws YarnRemoteException;
|
*
|
||||||
public GetQueueInfoResponse getQueueInfo(GetQueueInfoRequest request) throws YarnRemoteException;
|
* <p>The client, via {@link GetApplicationReportRequest} provides the
|
||||||
public GetQueueUserAclsInfoResponse getQueueUserAcls(GetQueueUserAclsInfoRequest request) throws YarnRemoteException;
|
* {@link ApplicationId} of the application.</p>
|
||||||
|
*
|
||||||
|
* <p> In secure mode,the <code>ResourceManager</code> verifies access to the
|
||||||
|
* application, queue etc. before accepting the request.</p>
|
||||||
|
*
|
||||||
|
* <p>The <code>ResourceManager</code> responds with a
|
||||||
|
* {@link GetApplicationReportResponse} which includes the
|
||||||
|
* {@link ApplicationReport} for the application.</p>
|
||||||
|
*
|
||||||
|
* @param request request for an application report
|
||||||
|
* @return application report
|
||||||
|
* @throws YarnRemoteException
|
||||||
|
*/
|
||||||
|
public GetApplicationReportResponse getApplicationReport(
|
||||||
|
GetApplicationReportRequest request)
|
||||||
|
throws YarnRemoteException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The interface used by clients to get metrics about the cluster from
|
||||||
|
* the <code>ResourceManager</code>.</p>
|
||||||
|
*
|
||||||
|
* <p>The <code>ResourceManager</code> responds with a
|
||||||
|
* {@link GetClusterMetricsResponse} which includes the
|
||||||
|
* {@link YarnClusterMetrics} with details such as number of current
|
||||||
|
* nodes in the cluster.</p>
|
||||||
|
*
|
||||||
|
* @param request request for cluster metrics
|
||||||
|
* @return cluster metrics
|
||||||
|
* @throws YarnRemoteException
|
||||||
|
*/
|
||||||
|
public GetClusterMetricsResponse getClusterMetrics(
|
||||||
|
GetClusterMetricsRequest request)
|
||||||
|
throws YarnRemoteException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The interface used by clients to get a report of all Applications
|
||||||
|
* in the cluster from the <code>ResourceManager</code>.</p>
|
||||||
|
*
|
||||||
|
* <p>The <code>ResourceManager</code> responds with a
|
||||||
|
* {@link GetAllApplicationsResponse} which includes the
|
||||||
|
* {@link ApplicationReport} for all the applications.</p>
|
||||||
|
*
|
||||||
|
* @param request request for report on all running applications
|
||||||
|
* @return report on all running applications
|
||||||
|
* @throws YarnRemoteException
|
||||||
|
*/
|
||||||
|
public GetAllApplicationsResponse getAllApplications(
|
||||||
|
GetAllApplicationsRequest request)
|
||||||
|
throws YarnRemoteException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The interface used by clients to get a report of all nodes
|
||||||
|
* in the cluster from the <code>ResourceManager</code>.</p>
|
||||||
|
*
|
||||||
|
* <p>The <code>ResourceManager</code> responds with a
|
||||||
|
* {@link GetClusterNodesResponse} which includes the
|
||||||
|
* {@link NodeReport} for all the nodes in the cluster.</p>
|
||||||
|
*
|
||||||
|
* @param request request for report on all nodes
|
||||||
|
* @return report on all nodes
|
||||||
|
* @throws YarnRemoteException
|
||||||
|
*/
|
||||||
|
public GetClusterNodesResponse getClusterNodes(
|
||||||
|
GetClusterNodesRequest request)
|
||||||
|
throws YarnRemoteException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The interface used by clients to get information about <em>queues</em>
|
||||||
|
* from the <code>ResourceManager</code>.</p>
|
||||||
|
*
|
||||||
|
* <p>The client, via {@link GetQueueInfoRequest}, can ask for details such
|
||||||
|
* as used/total resources, child queues, running applications etc.</p>
|
||||||
|
*
|
||||||
|
* <p> In secure mode,the <code>ResourceManager</code> verifies access before
|
||||||
|
* providing the information.</p>
|
||||||
|
*
|
||||||
|
* @param request request to get queue information
|
||||||
|
* @return queue information
|
||||||
|
* @throws YarnRemoteException
|
||||||
|
*/
|
||||||
|
public GetQueueInfoResponse getQueueInfo(
|
||||||
|
GetQueueInfoRequest request)
|
||||||
|
throws YarnRemoteException;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The interface used by clients to get information about <em>queue
|
||||||
|
* acls</em> for <em>current users</em> from the <code>ResourceManager</code>.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* <p>The <code>ResourceManager</code> responds with queue acls for all
|
||||||
|
* existing queues.</p>
|
||||||
|
*
|
||||||
|
* @param request request to get queue acls for <em>current user</em>
|
||||||
|
* @return queue acls for <em>current user</em>
|
||||||
|
* @throws YarnRemoteException
|
||||||
|
*/
|
||||||
|
public GetQueueUserAclsInfoResponse getQueueUserAcls(
|
||||||
|
GetQueueUserAclsInfoRequest request)
|
||||||
|
throws YarnRemoteException;
|
||||||
}
|
}
|
||||||
|
|
|
@ -115,7 +115,7 @@ public interface ContainerManager {
|
||||||
*
|
*
|
||||||
* @param request request to get <code>ContainerStatus</code> of a container
|
* @param request request to get <code>ContainerStatus</code> of a container
|
||||||
* with the specified <code>ContainerId</code>
|
* with the specified <code>ContainerId</code>
|
||||||
* @return the <code>ContainerStatus</code> of the container
|
* @return <code>ContainerStatus</code> of the container
|
||||||
* @throws YarnRemoteException
|
* @throws YarnRemoteException
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
|
|
|
@ -32,8 +32,7 @@ import org.apache.hadoop.yarn.api.records.ResourceRequest;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>The core request sent by the <code>ApplicationMaster</code> to the
|
* <p>The core request sent by the <code>ApplicationMaster</code> to the
|
||||||
* <code>ResourceManager</code> to obtain resources in the cluster via
|
* <code>ResourceManager</code> to obtain resources in the cluster.</p>
|
||||||
* {@link AMRMProtocol#allocate(AllocateRequest)}.</p>
|
|
||||||
*
|
*
|
||||||
* <p>The request includes:
|
* <p>The request includes:
|
||||||
* <ul>
|
* <ul>
|
||||||
|
@ -55,13 +54,14 @@ import org.apache.hadoop.yarn.api.records.ResourceRequest;
|
||||||
* </ul>
|
* </ul>
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
|
* @see AMRMProtocol#allocate(AllocateRequest)
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
public interface AllocateRequest {
|
public interface AllocateRequest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the {@link ApplicationAttemptId} being managed by the
|
* Get the <code>ApplicationAttemptId</code> being managed by the
|
||||||
* <code>ApplicationMaster</code>.
|
* <code>ApplicationMaster</code>.
|
||||||
* @return <code>ApplicationAttemptId</code> being managed by the
|
* @return <code>ApplicationAttemptId</code> being managed by the
|
||||||
* <code>ApplicationMaster</code>
|
* <code>ApplicationMaster</code>
|
||||||
|
@ -70,32 +70,46 @@ public interface AllocateRequest {
|
||||||
@Stable
|
@Stable
|
||||||
ApplicationAttemptId getApplicationAttemptId();
|
ApplicationAttemptId getApplicationAttemptId();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Set the <code>ApplicationAttemptId</code> being managed by the
|
||||||
|
* <code>ApplicationMaster</code>.
|
||||||
|
* @param applicationAttemptId <code>ApplicationAttemptId</code> being managed
|
||||||
|
* by the <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
void setApplicationAttemptId(ApplicationAttemptId applicationAttemptId);
|
void setApplicationAttemptId(ApplicationAttemptId applicationAttemptId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the response id.
|
* Get the <em>response id</em>.
|
||||||
* @return the response id
|
* @return <em>response id</em>
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
int getResponseId();
|
int getResponseId();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Set the <em>response id</em>
|
||||||
|
* @param id <em>response id</em>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
void setResponseId(int id);
|
void setResponseId(int id);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the current progress of application.
|
* Get the <em>current progress</em> of application.
|
||||||
* @return the current progress of application
|
* @return <em>current progress</em> of application
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
float getProgress();
|
float getProgress();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Set the <em>current progress</em> of application
|
||||||
|
* @param progress <em>current progress</em> of application
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
void setProgress(float progress);
|
void setProgress(float progress);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -115,6 +129,29 @@ public interface AllocateRequest {
|
||||||
@Unstable
|
@Unstable
|
||||||
int getAskCount();
|
int getAskCount();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add list of <code>ResourceRequest</code> to upate the
|
||||||
|
* <code>ResourceManager</code> about the application's resource requirements.
|
||||||
|
* @param resourceRequest list of <code>ResourceRequest</code> to upate the
|
||||||
|
* <code>ResourceManager</code> about the application's
|
||||||
|
* resource requirements
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
void addAllAsks(List<ResourceRequest> resourceRequest);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
void addAsk(ResourceRequest request);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
void removeAsk(int index);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
void clearAsks();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the list of <code>ContainerId</code> of unused containers being
|
* Get the list of <code>ContainerId</code> of unused containers being
|
||||||
* released by the <code>ApplicationMaster</code>.
|
* released by the <code>ApplicationMaster</code>.
|
||||||
|
@ -133,26 +170,15 @@ public interface AllocateRequest {
|
||||||
@Unstable
|
@Unstable
|
||||||
int getReleaseCount();
|
int getReleaseCount();
|
||||||
|
|
||||||
|
/**
|
||||||
@Private
|
* Add the list of <code>ContainerId</code> of unused containers being
|
||||||
@Unstable
|
* released by the <code>ApplicationMaster</code>
|
||||||
void addAllAsks(List<ResourceRequest> resourceRequest);
|
* @param releaseContainers list of <code>ContainerId</code> of unused
|
||||||
|
* containers being released by the <
|
||||||
@Private
|
* code>ApplicationMaster</code>
|
||||||
@Unstable
|
*/
|
||||||
void addAsk(ResourceRequest request);
|
@Public
|
||||||
|
@Stable
|
||||||
@Private
|
|
||||||
@Unstable
|
|
||||||
void removeAsk(int index);
|
|
||||||
|
|
||||||
@Private
|
|
||||||
@Unstable
|
|
||||||
void clearAsks();
|
|
||||||
|
|
||||||
|
|
||||||
@Private
|
|
||||||
@Unstable
|
|
||||||
void addAllReleases(List<ContainerId> releaseContainers);
|
void addAllReleases(List<ContainerId> releaseContainers);
|
||||||
|
|
||||||
@Private
|
@Private
|
||||||
|
|
|
@ -28,8 +28,7 @@ import org.apache.hadoop.yarn.api.records.Container;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>The response sent by the <code>ResourceManager</code> the
|
* <p>The response sent by the <code>ResourceManager</code> the
|
||||||
* <code>ApplicationMaster</code> during resource negotiation via
|
* <code>ApplicationMaster</code> during resource negotiation.</p>
|
||||||
* {@link AMRMProtocol#allocate(AllocateRequest)}.</p>
|
|
||||||
*
|
*
|
||||||
* <p>The response, via {@link AMResponse}, includes:
|
* <p>The response, via {@link AMResponse}, includes:
|
||||||
* <ul>
|
* <ul>
|
||||||
|
@ -45,6 +44,8 @@ import org.apache.hadoop.yarn.api.records.Container;
|
||||||
* </li>
|
* </li>
|
||||||
* </ul>
|
* </ul>
|
||||||
* </p>
|
* </p>
|
||||||
|
*
|
||||||
|
* @see AMRMProtocol#allocate(AllocateRequest)
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
|
|
|
@ -18,18 +18,14 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
|
||||||
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
|
||||||
import org.apache.hadoop.yarn.api.AMRMProtocol;
|
import org.apache.hadoop.yarn.api.AMRMProtocol;
|
||||||
import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
|
import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>The finalization request sent by the <code>ApplicationMaster</code> to
|
* <p>The finalization request sent by the <code>ApplicationMaster</code> to
|
||||||
* inform the <code>ResourceManager</code> about its completion via the
|
* inform the <code>ResourceManager</code> about its completion.</p>
|
||||||
* {@link AMRMProtocol#finishApplicationMaster(FinishApplicationMasterRequest)}
|
|
||||||
* api.</p>
|
|
||||||
*
|
*
|
||||||
* <p>The final request includes details such:
|
* <p>The final request includes details such:
|
||||||
* <ul>
|
* <ul>
|
||||||
|
@ -46,11 +42,12 @@ import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
|
||||||
* </ul>
|
* </ul>
|
||||||
* </p>
|
* </p>
|
||||||
*
|
*
|
||||||
|
* @see AMRMProtocol#finishApplicationMaster(FinishApplicationMasterRequest)
|
||||||
*/
|
*/
|
||||||
public interface FinishApplicationMasterRequest {
|
public interface FinishApplicationMasterRequest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the {@link ApplicationAttemptId} being managed by the
|
* Get the <code>ApplicationAttemptId</code> being managed by the
|
||||||
* <code>ApplicationMaster</code>.
|
* <code>ApplicationMaster</code>.
|
||||||
* @return <code>ApplicationAttemptId</code> being managed by the
|
* @return <code>ApplicationAttemptId</code> being managed by the
|
||||||
* <code>ApplicationMaster</code>
|
* <code>ApplicationMaster</code>
|
||||||
|
@ -59,44 +56,63 @@ public interface FinishApplicationMasterRequest {
|
||||||
@Stable
|
@Stable
|
||||||
ApplicationAttemptId getApplicationAttemptId();
|
ApplicationAttemptId getApplicationAttemptId();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Set the <code>ApplicationAttemptId</code> being managed by the
|
||||||
|
* <code>ApplicationMaster</code>.
|
||||||
|
* @param applicationAttemptId <code>ApplicationAttemptId</code> being managed
|
||||||
|
* by the <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
void setAppAttemptId(ApplicationAttemptId applicationAttemptId);
|
void setAppAttemptId(ApplicationAttemptId applicationAttemptId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get final state of the <code>ApplicationMaster</code>.
|
* Get <em>final state</em> of the <code>ApplicationMaster</code>.
|
||||||
* @return final state of the <code>ApplicationMaster</code>
|
* @return <em>final state</em> of the <code>ApplicationMaster</code>
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
String getFinalState();
|
String getFinalState();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Set <em>final state</em> of the <code>ApplicationMaster</code>
|
||||||
void setFinalState(String string);
|
* @param finalState <em>final state</em> of the <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
void setFinalState(String finalState);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get diagnostic information if the application failed.
|
* Get <em>diagnostic information</em> on application failure.
|
||||||
* @return diagnostic information if the application failed
|
* @return <em>diagnostic information</em> on application failure
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
String getDiagnostics();
|
String getDiagnostics();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Set <em>diagnostic information</em> on application failure.
|
||||||
void setDiagnostics(String string);
|
* @param diagnostics <em>diagnostic information</em> on application failure
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
void setDiagnostics(String diagnostics);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the tracking URL for the <code>ApplicationMaster</code>.
|
* Get the <em>tracking URL</em> for the <code>ApplicationMaster</code>.
|
||||||
* @return the tracking URL for the <code>ApplicationMaster</code>
|
* @return <em>tracking URL</em>for the <code>ApplicationMaster</code>
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
String getTrackingUrl();
|
String getTrackingUrl();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Set the <em>tracking URL</em>for the <code>ApplicationMaster</code>
|
||||||
void setTrackingUrl(String historyUrl);
|
* @param url <em>tracking URL</em>for the
|
||||||
|
* <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
void setTrackingUrl(String url);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,11 +24,11 @@ import org.apache.hadoop.yarn.api.AMRMProtocol;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>The response sent by the <code>ResourceManager</code> to a
|
* <p>The response sent by the <code>ResourceManager</code> to a
|
||||||
* <code>ApplicationMaster</code> on it's completion via the
|
* <code>ApplicationMaster</code> on it's completion.</p>
|
||||||
* {@link AMRMProtocol#finishApplicationMaster(FinishApplicationMasterRequest)}
|
|
||||||
* api.</p>
|
|
||||||
*
|
*
|
||||||
* <p>Currently, this is empty.</p>
|
* <p>Currently, this is empty.</p>
|
||||||
|
*
|
||||||
|
* @see AMRMProtocol#finishApplicationMaster(FinishApplicationMasterRequest)
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
|
|
|
@ -18,10 +18,34 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
import org.apache.hadoop.yarn.api.records.ApplicationId;
|
import org.apache.hadoop.yarn.api.records.ApplicationId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The request sent by the client to the <code>ResourceManager</code>
|
||||||
|
* to abort a submitted application.</p>
|
||||||
|
*
|
||||||
|
* <p>The request includes the {@link ApplicationId} of the application to be
|
||||||
|
* aborted.</p>
|
||||||
|
*
|
||||||
|
* @see ClientRMProtocol#finishApplication(FinishApplicationRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface FinishApplicationRequest {
|
public interface FinishApplicationRequest {
|
||||||
|
/**
|
||||||
|
* Get the <code>ApplicationId</code> of the application to be aborted.
|
||||||
|
* @return <code>ApplicationId</code> of the application to be aborted
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public abstract ApplicationId getApplicationId();
|
public abstract ApplicationId getApplicationId();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
public abstract void setApplicationId(ApplicationId applicationId);
|
public abstract void setApplicationId(ApplicationId applicationId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,20 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The response sent by the <code>ResourceManager</code> to the client
|
||||||
|
* aborting a submitted application.</p>
|
||||||
|
*
|
||||||
|
* <p>Currently it's empty.</p>
|
||||||
|
*
|
||||||
|
* @see ClientRMProtocol#finishApplication(FinishApplicationRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface FinishApplicationResponse {
|
public interface FinishApplicationResponse {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,5 +18,17 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The request from clients to get a report of all Applications
|
||||||
|
* in the cluster from the <code>ResourceManager</code>.</p>
|
||||||
|
*
|
||||||
|
* @see ClientRMProtocol#getAllApplications(GetAllApplicationsRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface GetAllApplicationsRequest {
|
public interface GetAllApplicationsRequest {
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,9 +20,36 @@ package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
import org.apache.hadoop.yarn.api.records.ApplicationReport;
|
import org.apache.hadoop.yarn.api.records.ApplicationReport;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The response sent by the <code>ResourceManager</code> to a client
|
||||||
|
* requesting an {@link ApplicationReport} for all applications.</p>
|
||||||
|
*
|
||||||
|
* <p>The <code>ApplicationReport</code> for each application includes details
|
||||||
|
* such as user, queue, name, host on which the <code>ApplicationMaster</code>
|
||||||
|
* is running, RPC port, tracking URL, diagnostics, start time etc.</p>
|
||||||
|
*
|
||||||
|
* @see ApplicationReport
|
||||||
|
* @see ClientRMProtocol#getAllApplications(GetAllApplicationsRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface GetAllApplicationsResponse {
|
public interface GetAllApplicationsResponse {
|
||||||
|
/**
|
||||||
|
* Get <code>ApplicationReport</code> for all applications.
|
||||||
|
* @return <code>ApplicationReport</code> for all applications
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
List<ApplicationReport> getApplicationList();
|
List<ApplicationReport> getApplicationList();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setApplicationList(List<ApplicationReport> applications);
|
void setApplicationList(List<ApplicationReport> applications);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,9 +18,34 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
import org.apache.hadoop.yarn.api.records.ApplicationId;
|
import org.apache.hadoop.yarn.api.records.ApplicationId;
|
||||||
|
import org.apache.hadoop.yarn.api.records.ApplicationReport;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The request sent by a client to the <code>ResourceManager</code> to
|
||||||
|
* get an {@link ApplicationReport} for an application.</p>
|
||||||
|
*
|
||||||
|
* <p>The request should include the {@link ApplicationId} of the
|
||||||
|
* application.</p>
|
||||||
|
*
|
||||||
|
* @see ClientRMProtocol#getApplicationReport(GetApplicationReportRequest)
|
||||||
|
* @see ApplicationReport
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface GetApplicationReportRequest {
|
public interface GetApplicationReportRequest {
|
||||||
public abstract ApplicationId getApplicationId();
|
/**
|
||||||
public abstract void setApplicationId(ApplicationId applicationId);
|
* Get the <code>ApplicationId</code> of the application.
|
||||||
|
* @return <code>ApplicationId</code> of the application
|
||||||
|
*/
|
||||||
|
public ApplicationId getApplicationId();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the <code>ApplicationId</code> of the application
|
||||||
|
* @param applicationId <code>ApplicationId</code> of the application
|
||||||
|
*/
|
||||||
|
public void setApplicationId(ApplicationId applicationId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,9 +18,35 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
import org.apache.hadoop.yarn.api.records.ApplicationReport;
|
import org.apache.hadoop.yarn.api.records.ApplicationReport;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The response sent by the <code>ResourceManager</code> to a client
|
||||||
|
* requesting an application report.</p>
|
||||||
|
*
|
||||||
|
* <p>The response includes an {@link ApplicationReport} which has details such
|
||||||
|
* as user, queue, name, host on which the <code>ApplicationMaster</code> is
|
||||||
|
* running, RPC port, tracking URL, diagnostics, start time etc.</p>
|
||||||
|
*
|
||||||
|
* @see ClientRMProtocol#getApplicationReport(GetApplicationReportRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface GetApplicationReportResponse {
|
public interface GetApplicationReportResponse {
|
||||||
public abstract ApplicationReport getApplicationReport();
|
/**
|
||||||
public abstract void setApplicationReport(ApplicationReport ApplicationReport);
|
* Get the <code>ApplicationReport</code> for the application.
|
||||||
|
* @return <code>ApplicationReport</code> for the application
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public ApplicationReport getApplicationReport();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void setApplicationReport(ApplicationReport ApplicationReport);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,18 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The request sent by clients to get cluster metrics from the
|
||||||
|
* <code>ResourceManager</code>.</p>
|
||||||
|
*
|
||||||
|
* @see ClientRMProtocol#getClusterMetrics(GetClusterMetricsRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface GetClusterMetricsRequest {
|
public interface GetClusterMetricsRequest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,9 +18,32 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
import org.apache.hadoop.yarn.api.records.YarnClusterMetrics;
|
import org.apache.hadoop.yarn.api.records.YarnClusterMetrics;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The response sent by the <code>ResourceManager</code> to a client
|
||||||
|
* requesting cluster metrics.<p>
|
||||||
|
*
|
||||||
|
* @see YarnClusterMetrics
|
||||||
|
* @see ClientRMProtocol#getClusterMetrics(GetClusterMetricsRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface GetClusterMetricsResponse {
|
public interface GetClusterMetricsResponse {
|
||||||
public abstract YarnClusterMetrics getClusterMetrics();
|
/**
|
||||||
public abstract void setClusterMetrics(YarnClusterMetrics metrics);
|
* Get the <code>YarnClusterMetrics</code> for the cluster.
|
||||||
|
* @return <code>YarnClusterMetrics</code> for the cluster
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public YarnClusterMetrics getClusterMetrics();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void setClusterMetrics(YarnClusterMetrics metrics);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,18 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The request from clients to get a report of all nodes
|
||||||
|
* in the cluster from the <code>ResourceManager</code>.</p>
|
||||||
|
*
|
||||||
|
* @see ClientRMProtocol#getClusterNodes(GetClusterNodesRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface GetClusterNodesRequest {
|
public interface GetClusterNodesRequest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,9 +20,36 @@ package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
import org.apache.hadoop.yarn.api.records.NodeReport;
|
import org.apache.hadoop.yarn.api.records.NodeReport;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The response sent by the <code>ResourceManager</code> to a client
|
||||||
|
* requesting an {@link NodeReport} for all nodes.</p>
|
||||||
|
*
|
||||||
|
* <p>The <code>NodeReport</code> contains per-node information such as
|
||||||
|
* available resources, number of containers, tracking url, rack name, health
|
||||||
|
* status etc.
|
||||||
|
*
|
||||||
|
* @see NodeReport
|
||||||
|
* @see ClientRMProtocol#getClusterNodes(GetClusterNodesRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface GetClusterNodesResponse {
|
public interface GetClusterNodesResponse {
|
||||||
|
/**
|
||||||
|
* Get <code>NodeReport</code> for all nodes in the cluster.
|
||||||
|
* @return <code>NodeReport</code> for all nodes in the cluster
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
List<NodeReport> getNodeReports();
|
List<NodeReport> getNodeReports();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setNodeReports(List<NodeReport> nodeReports);
|
void setNodeReports(List<NodeReport> nodeReports);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,18 +18,17 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
|
||||||
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
|
||||||
import org.apache.hadoop.yarn.api.ContainerManager;
|
import org.apache.hadoop.yarn.api.ContainerManager;
|
||||||
import org.apache.hadoop.yarn.api.records.ContainerId;
|
import org.apache.hadoop.yarn.api.records.ContainerId;
|
||||||
import org.apache.hadoop.yarn.api.records.ContainerStatus;
|
import org.apache.hadoop.yarn.api.records.ContainerStatus;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>The request sent by the <code>ApplicationMaster</code> to the
|
* <p>The request sent by the <code>ApplicationMaster</code> to the
|
||||||
* <code>NodeManager</code> to get {@link ContainerStatus} of a container via
|
* <code>NodeManager</code> to get {@link ContainerStatus} of a container.</p>
|
||||||
* {@link ContainerManager#getContainerStatus(GetContainerStatusRequest)}.</p>
|
*
|
||||||
|
* @see ContainerManager#getContainerStatus(GetContainerStatusRequest)
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
|
@ -44,7 +43,13 @@ public interface GetContainerStatusRequest {
|
||||||
@Stable
|
@Stable
|
||||||
public abstract ContainerId getContainerId();
|
public abstract ContainerId getContainerId();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Set the <code>ContainerId</code> of container for which to obtain the
|
||||||
|
* <code>ContainerStatus</code>
|
||||||
|
* @param containerId <code>ContainerId</code> of container for which to
|
||||||
|
* obtain the <code>ContainerStatus</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public abstract void setContainerId(ContainerId containerId);
|
public abstract void setContainerId(ContainerId containerId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,8 +28,9 @@ import org.apache.hadoop.yarn.api.records.ContainerStatus;
|
||||||
/**
|
/**
|
||||||
* <p>The response sent by the <code>NodeManager</code> to the
|
* <p>The response sent by the <code>NodeManager</code> to the
|
||||||
* <code>ApplicationMaster</code> when asked to obtainer <em>status</em>
|
* <code>ApplicationMaster</code> when asked to obtainer <em>status</em>
|
||||||
* of a container via
|
* of a container.</p>
|
||||||
* {@link ContainerManager#getContainerStatus(GetContainerStatusRequest)}.</p>
|
*
|
||||||
|
* @see ContainerManager#getContainerStatus(GetContainerStatusRequest)
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
|
|
|
@ -18,6 +18,19 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
|
import org.apache.hadoop.yarn.api.records.ApplicationId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The request sent by clients to get a new {@link ApplicationId} for
|
||||||
|
* submitting an application.</p>
|
||||||
|
*
|
||||||
|
* @see ClientRMProtocol#getNewApplicationId(GetNewApplicationIdRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface GetNewApplicationIdRequest {
|
public interface GetNewApplicationIdRequest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,9 +18,33 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
import org.apache.hadoop.yarn.api.records.ApplicationId;
|
import org.apache.hadoop.yarn.api.records.ApplicationId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The response sent by the <code>ResourceManager</code> to the client for
|
||||||
|
* a request to a new {@link ApplicationId} for submitting applications.</p>
|
||||||
|
*
|
||||||
|
* @see ClientRMProtocol#getNewApplicationId(GetNewApplicationIdRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface GetNewApplicationIdResponse {
|
public interface GetNewApplicationIdResponse {
|
||||||
|
/**
|
||||||
|
* Get the <em>new</em> <code>ApplicationId</code> allocated by the
|
||||||
|
* <code>ResourceManager</code>.
|
||||||
|
* @return <em>new</em> <code>ApplicationId</code> allocated by the
|
||||||
|
* <code>ResourceManager</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public abstract ApplicationId getApplicationId();
|
public abstract ApplicationId getApplicationId();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
public abstract void setApplicationId(ApplicationId applicationId);
|
public abstract void setApplicationId(ApplicationId applicationId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,17 +18,70 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The request sent by clients to get <em>queue information</em>
|
||||||
|
* from the <code>ResourceManager</code>.</p>
|
||||||
|
*
|
||||||
|
* @see ClientRMProtocol#getQueueInfo(GetQueueInfoRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface GetQueueInfoRequest {
|
public interface GetQueueInfoRequest {
|
||||||
|
/**
|
||||||
|
* Get the <em>queue name</em> for which to get queue information.
|
||||||
|
* @return <em>queue name</em> for which to get queue information
|
||||||
|
*/
|
||||||
String getQueueName();
|
String getQueueName();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the <em>queue name</em> for which to get queue information
|
||||||
|
* @param queueName <em>queue name</em> for which to get queue information
|
||||||
|
*/
|
||||||
void setQueueName(String queueName);
|
void setQueueName(String queueName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is information about <em>active applications<e/m> required?
|
||||||
|
* @return <code>true</code> if applications' information is to be included,
|
||||||
|
* else <code>false</code>
|
||||||
|
*/
|
||||||
boolean getIncludeApplications();
|
boolean getIncludeApplications();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Should we get fetch information about <em>active applications</em>?
|
||||||
|
* @param includeApplications fetch information about <em>active
|
||||||
|
* applications</em>?
|
||||||
|
*/
|
||||||
void setIncludeApplications(boolean includeApplications);
|
void setIncludeApplications(boolean includeApplications);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is information about <em>child queues</em> required?
|
||||||
|
* @return <code>true</code> if information about child queues is required,
|
||||||
|
* else <code>false</code>
|
||||||
|
*/
|
||||||
boolean getIncludeChildQueues();
|
boolean getIncludeChildQueues();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Should we fetch information about <em>child queues</em>?
|
||||||
|
* @param includeChildQueues fetch information about <em>child queues</em>?
|
||||||
|
*/
|
||||||
void setIncludeChildQueues(boolean includeChildQueues);
|
void setIncludeChildQueues(boolean includeChildQueues);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is information on the entire <em>child queue hierarchy</em> required?
|
||||||
|
* @return <code>true</code> if information about entire hierarchy is
|
||||||
|
* required, <code>false</code> otherwise
|
||||||
|
*/
|
||||||
boolean getRecursive();
|
boolean getRecursive();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Should we fetch information on the entire <em>child queue hierarchy</em>?
|
||||||
|
* @param recursive fetch information on the entire <em>child queue
|
||||||
|
* hierarchy</em>?
|
||||||
|
*/
|
||||||
void setRecursive(boolean recursive);
|
void setRecursive(boolean recursive);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,9 +18,34 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
import org.apache.hadoop.yarn.api.records.QueueInfo;
|
import org.apache.hadoop.yarn.api.records.QueueInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The response sent by the <code>ResourceManager</code> to a client
|
||||||
|
* requesting information about queues in the system.</p>
|
||||||
|
*
|
||||||
|
* <p>The response includes a {@link QueueInfo} which has details such as
|
||||||
|
* queue name, used/total capacities, running applications, child queues etc
|
||||||
|
* .</p>
|
||||||
|
*
|
||||||
|
* @see QueueInfo
|
||||||
|
* @see ClientRMProtocol#getQueueInfo(GetQueueInfoRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface GetQueueInfoResponse {
|
public interface GetQueueInfoResponse {
|
||||||
|
/**
|
||||||
|
* Get the <code>QueueInfo</code> for the specified queue.
|
||||||
|
* @return <code>QueueInfo</code> for the specified queue
|
||||||
|
*/
|
||||||
QueueInfo getQueueInfo();
|
QueueInfo getQueueInfo();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setQueueInfo(QueueInfo queueInfo);
|
void setQueueInfo(QueueInfo queueInfo);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,18 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The request sent by clients to the <code>ResourceManager</code> to
|
||||||
|
* get queue acls for the <em>current user</em>.</p>
|
||||||
|
*
|
||||||
|
* @see ClientRMProtocol#getQueueUserAcls(GetQueueUserAclsInfoRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface GetQueueUserAclsInfoRequest {
|
public interface GetQueueUserAclsInfoRequest {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,12 +20,39 @@ package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
|
import org.apache.hadoop.yarn.api.records.QueueACL;
|
||||||
import org.apache.hadoop.yarn.api.records.QueueUserACLInfo;
|
import org.apache.hadoop.yarn.api.records.QueueUserACLInfo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The response sent by the <code>ResourceManager</code> to clients
|
||||||
|
* seeking queue acls for the user.</p>
|
||||||
|
*
|
||||||
|
* <p>The response contains a list of {@link QueueUserACLInfo} which
|
||||||
|
* provides information about {@link QueueACL} per queue.</p>
|
||||||
|
*
|
||||||
|
* @see QueueACL
|
||||||
|
* @see QueueUserACLInfo
|
||||||
|
* @see ClientRMProtocol#getQueueUserAcls(GetQueueUserAclsInfoRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface GetQueueUserAclsInfoResponse {
|
public interface GetQueueUserAclsInfoResponse {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <code>QueueUserACLInfo</code> per queue for the user.
|
||||||
|
* @return <code>QueueUserACLInfo</code> per queue for the user
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public List<QueueUserACLInfo> getUserAclsInfoList();
|
public List<QueueUserACLInfo> getUserAclsInfoList();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
public void setUserAclsInfoList(List<QueueUserACLInfo> queueUserAclsList);
|
public void setUserAclsInfoList(List<QueueUserACLInfo> queueUserAclsList);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,9 +27,7 @@ import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>The request sent by the <code>ApplicationMaster</code> to
|
* <p>The request sent by the <code>ApplicationMaster</code> to
|
||||||
* <code>ResourceManager</code> on registration via the
|
* <code>ResourceManager</code> on registration.</p>
|
||||||
* {@link AMRMProtocol#registerApplicationMaster(RegisterApplicationMasterRequest)}
|
|
||||||
* api.</p>
|
|
||||||
*
|
*
|
||||||
* <p>The registration includes details such as:
|
* <p>The registration includes details such as:
|
||||||
* <ul>
|
* <ul>
|
||||||
|
@ -42,13 +40,15 @@ import org.apache.hadoop.yarn.api.records.ApplicationAttemptId;
|
||||||
* <li>Tracking URL</li>
|
* <li>Tracking URL</li>
|
||||||
* </ul>
|
* </ul>
|
||||||
* </p>
|
* </p>
|
||||||
|
*
|
||||||
|
* @see AMRMProtocol#registerApplicationMaster(RegisterApplicationMasterRequest)
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
public interface RegisterApplicationMasterRequest {
|
public interface RegisterApplicationMasterRequest {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the {@link ApplicationAttemptId} being managed by the
|
* Get the <code>ApplicationAttemptId</code> being managed by the
|
||||||
* <code>ApplicationMaster</code>.
|
* <code>ApplicationMaster</code>.
|
||||||
* @return <code>ApplicationAttemptId</code> being managed by the
|
* @return <code>ApplicationAttemptId</code> being managed by the
|
||||||
* <code>ApplicationMaster</code>
|
* <code>ApplicationMaster</code>
|
||||||
|
@ -57,44 +57,69 @@ public interface RegisterApplicationMasterRequest {
|
||||||
@Stable
|
@Stable
|
||||||
ApplicationAttemptId getApplicationAttemptId();
|
ApplicationAttemptId getApplicationAttemptId();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Set the <code>ApplicationAttemptId</code> being managed by the
|
||||||
|
* <code>ApplicationMaster</code>.
|
||||||
|
* @param applicationAttemptId <code>ApplicationAttemptId</code> being managed
|
||||||
|
* by the <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
void setApplicationAttemptId(ApplicationAttemptId applicationAttemptId);
|
void setApplicationAttemptId(ApplicationAttemptId applicationAttemptId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the host on which the <code>ApplicationMaster</code> is running.
|
* Get the <em>host</em> on which the <code>ApplicationMaster</code> is
|
||||||
* @return host on which the <code>ApplicationMaster</code> is running
|
* running.
|
||||||
|
* @return <em>host</em> on which the <code>ApplicationMaster</code> is running
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
String getHost();
|
String getHost();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the <em>host</em> on which the <code>ApplicationMaster</code> is
|
||||||
|
* running.
|
||||||
|
* @param host <em>host</em> on which the <code>ApplicationMaster</code>
|
||||||
|
* is running
|
||||||
|
*/
|
||||||
@Private
|
@Private
|
||||||
@Unstable
|
@Unstable
|
||||||
void setHost(String host);
|
void setHost(String host);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the RPC port on which the <code>ApplicationMaster</code> is responding.
|
* Get the <em>RPC port</em> on which the <code>ApplicationMaster</code>
|
||||||
* @return the RPC port on which the <code>ApplicationMaster</code> is
|
* is responding.
|
||||||
|
* @return the <em>RPC port<em> on which the <code>ApplicationMaster</code> is
|
||||||
* responding
|
* responding
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
int getRpcPort();
|
int getRpcPort();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Set the <em>RPC port<em> on which the <code>ApplicationMaster</code> is
|
||||||
|
* responding.
|
||||||
|
* @param port <em>RPC port<em> on which the <code>ApplicationMaster</code> is
|
||||||
|
* responding
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
void setRpcPort(int port);
|
void setRpcPort(int port);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the tracking URL for the <code>ApplicationMaster</code>.
|
* Get the <em>tracking URL</em> for the <code>ApplicationMaster</code>.
|
||||||
* @return the tracking URL for the <code>ApplicationMaster</code>
|
* @return <em>tracking URL</em> for the <code>ApplicationMaster</code>
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
String getTrackingUrl();
|
String getTrackingUrl();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Set the <em>tracking URL</em> for the <code>ApplicationMaster</code>.
|
||||||
void setTrackingUrl(String string);
|
* @param trackingUrl <em>tracking URL</em> for the
|
||||||
|
* <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
void setTrackingUrl(String trackingUrl);
|
||||||
}
|
}
|
||||||
|
|
|
@ -27,9 +27,7 @@ import org.apache.hadoop.yarn.api.records.Resource;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>The response sent by the <code>ResourceManager</code> to a new
|
* <p>The response sent by the <code>ResourceManager</code> to a new
|
||||||
* <code>ApplicationMaster</code> on registration via the
|
* <code>ApplicationMaster</code> on registration.</p>
|
||||||
* {@link AMRMProtocol#registerApplicationMaster(RegisterApplicationMasterRequest)}
|
|
||||||
* api.</p>
|
|
||||||
*
|
*
|
||||||
* <p>The response contains critical details such as:
|
* <p>The response contains critical details such as:
|
||||||
* <ul>
|
* <ul>
|
||||||
|
@ -37,6 +35,8 @@ import org.apache.hadoop.yarn.api.records.Resource;
|
||||||
* <li>Maximum capability for allocated resources in the cluster.</li>
|
* <li>Maximum capability for allocated resources in the cluster.</li>
|
||||||
* </ul>
|
* </ul>
|
||||||
* </p>
|
* </p>
|
||||||
|
*
|
||||||
|
* @see AMRMProtocol#registerApplicationMaster(RegisterApplicationMasterRequest)
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
|
|
|
@ -18,17 +18,14 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
|
||||||
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
|
||||||
import org.apache.hadoop.yarn.api.ContainerManager;
|
import org.apache.hadoop.yarn.api.ContainerManager;
|
||||||
import org.apache.hadoop.yarn.api.records.ContainerLaunchContext;
|
import org.apache.hadoop.yarn.api.records.ContainerLaunchContext;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>The request sent by the <code>ApplicationMaster</code> to the
|
* <p>The request sent by the <code>ApplicationMaster</code> to the
|
||||||
* <code>NodeManager</code> to <em>start</em> a container via
|
* <code>NodeManager</code> to <em>start</em> a container.</p>
|
||||||
* {@link ContainerManager#startContainer(StartContainerRequest)}.</p>
|
|
||||||
*
|
*
|
||||||
* <p>The <code>ApplicationMaster</code> has to provide details such as
|
* <p>The <code>ApplicationMaster</code> has to provide details such as
|
||||||
* allocated resource capability, security tokens (if enabled), command
|
* allocated resource capability, security tokens (if enabled), command
|
||||||
|
@ -36,6 +33,7 @@ import org.apache.hadoop.yarn.api.records.ContainerLaunchContext;
|
||||||
* necessary binaries/jar/shared-objects etc. via the
|
* necessary binaries/jar/shared-objects etc. via the
|
||||||
* {@link ContainerLaunchContext}.</p>
|
* {@link ContainerLaunchContext}.</p>
|
||||||
*
|
*
|
||||||
|
* @see ContainerManager#startContainer(StartContainerRequest)
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
|
@ -51,7 +49,13 @@ public interface StartContainerRequest {
|
||||||
@Stable
|
@Stable
|
||||||
public abstract ContainerLaunchContext getContainerLaunchContext();
|
public abstract ContainerLaunchContext getContainerLaunchContext();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Set the <code>ContainerLaunchContext</code> for the container to be started
|
||||||
|
* by the <code>NodeManager</code>
|
||||||
|
* @param context <code>ContainerLaunchContext</code> for the container to be
|
||||||
|
* started by the <code>NodeManager</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public abstract void setContainerLaunchContext(ContainerLaunchContext context);
|
public abstract void setContainerLaunchContext(ContainerLaunchContext context);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,8 +25,9 @@ import org.apache.hadoop.yarn.api.ContainerManager;
|
||||||
/**
|
/**
|
||||||
* <p>The response sent by the <code>NodeManager</code> to the
|
* <p>The response sent by the <code>NodeManager</code> to the
|
||||||
* <code>ApplicationMaster</code> when asked to <em>start</em> an
|
* <code>ApplicationMaster</code> when asked to <em>start</em> an
|
||||||
* allocated container via
|
* allocated container.</p>
|
||||||
* {@link ContainerManager#startContainer(StartContainerRequest)}.</p>
|
*
|
||||||
|
* @see ContainerManager#startContainer(StartContainerRequest)
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
|
|
|
@ -18,17 +18,16 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
|
||||||
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
|
||||||
import org.apache.hadoop.yarn.api.ContainerManager;
|
import org.apache.hadoop.yarn.api.ContainerManager;
|
||||||
import org.apache.hadoop.yarn.api.records.ContainerId;
|
import org.apache.hadoop.yarn.api.records.ContainerId;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>The request sent by the <code>ApplicationMaster</code> to the
|
* <p>The request sent by the <code>ApplicationMaster</code> to the
|
||||||
* <code>NodeManager</code> to <em>stop</em> a container via
|
* <code>NodeManager</code> to <em>stop</em> a container.</p>
|
||||||
* {@link ContainerManager#stopContainer(StopContainerRequest)}.</p>
|
*
|
||||||
|
* @see ContainerManager#stopContainer(StopContainerRequest)
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
|
@ -41,7 +40,11 @@ public interface StopContainerRequest {
|
||||||
@Stable
|
@Stable
|
||||||
ContainerId getContainerId();
|
ContainerId getContainerId();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Set the <code>ContainerId</code> of the container to be stopped.
|
||||||
|
* @param containerId <code>ContainerId</code> of the container to be stopped
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
void setContainerId(ContainerId containerId);
|
void setContainerId(ContainerId containerId);
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,8 +25,9 @@ import org.apache.hadoop.yarn.api.ContainerManager;
|
||||||
/**
|
/**
|
||||||
* <p>The response sent by the <code>NodeManager</code> to the
|
* <p>The response sent by the <code>NodeManager</code> to the
|
||||||
* <code>ApplicationMaster</code> when asked to <em>stop</em> an
|
* <code>ApplicationMaster</code> when asked to <em>stop</em> an
|
||||||
* allocated container via
|
* allocated container.</p>
|
||||||
* {@link ContainerManager#stopContainer(StopContainerRequest)}.</p>
|
*
|
||||||
|
* @see ContainerManager#stopContainer(StopContainerRequest)
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
|
|
|
@ -18,9 +18,43 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
|
import org.apache.hadoop.yarn.api.records.ApplicationSubmissionContext;
|
||||||
|
import org.apache.hadoop.yarn.api.records.ContainerLaunchContext;
|
||||||
|
import org.apache.hadoop.yarn.api.records.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The request sent by a client to <em>submit an application</em> to the
|
||||||
|
* <code>ResourceManager</code>.</p>
|
||||||
|
*
|
||||||
|
* <p>The request, via {@link ApplicationSubmissionContext}, contains
|
||||||
|
* details such as queue, {@link Resource} required to run the
|
||||||
|
* <code>ApplicationMaster</code>, the equivalent of
|
||||||
|
* {@link ContainerLaunchContext} for launching the
|
||||||
|
* <code>ApplicationMaster</code> etc.
|
||||||
|
*
|
||||||
|
* @see ClientRMProtocol#submitApplication(SubmitApplicationRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface SubmitApplicationRequest {
|
public interface SubmitApplicationRequest {
|
||||||
|
/**
|
||||||
|
* Get the <code>ApplicationSubmissionContext</code> for the application.
|
||||||
|
* @return <code>ApplicationSubmissionContext</code> for the application
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public abstract ApplicationSubmissionContext getApplicationSubmissionContext();
|
public abstract ApplicationSubmissionContext getApplicationSubmissionContext();
|
||||||
public abstract void setApplicationSubmissionContext(ApplicationSubmissionContext context);
|
|
||||||
|
/**
|
||||||
|
* Set the <code>ApplicationSubmissionContext</code> for the application.
|
||||||
|
* @param context <code>ApplicationSubmissionContext</code> for the
|
||||||
|
* application
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public abstract void setApplicationSubmissionContext(
|
||||||
|
ApplicationSubmissionContext context);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,18 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.protocolrecords;
|
package org.apache.hadoop.yarn.api.protocolrecords;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>The response sent by the <code>ResourceManager</code> to a client on
|
||||||
|
* application submission.</p>
|
||||||
|
*
|
||||||
|
* @see ClientRMProtocol#submitApplication(SubmitApplicationRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface SubmitApplicationResponse {
|
public interface SubmitApplicationResponse {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -29,8 +29,7 @@ import org.apache.hadoop.yarn.api.protocolrecords.AllocateRequest;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>The response sent by the <code>ResourceManager</code> the
|
* <p>The response sent by the <code>ResourceManager</code> the
|
||||||
* <code>ApplicationMaster</code> during resource negotiation via
|
* <code>ApplicationMaster</code> during resource negotiation.</p>
|
||||||
* {@link AMRMProtocol#allocate(AllocateRequest)}.</p>
|
|
||||||
*
|
*
|
||||||
* <p>The response includes:
|
* <p>The response includes:
|
||||||
* <ul>
|
* <ul>
|
||||||
|
@ -46,6 +45,8 @@ import org.apache.hadoop.yarn.api.protocolrecords.AllocateRequest;
|
||||||
* </li>
|
* </li>
|
||||||
* </ul>
|
* </ul>
|
||||||
* </p>
|
* </p>
|
||||||
|
*
|
||||||
|
* @see AMRMProtocol#allocate(AllocateRequest)
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Unstable
|
@Unstable
|
||||||
|
@ -67,8 +68,8 @@ public interface AMResponse {
|
||||||
public void setReboot(boolean reboot);
|
public void setReboot(boolean reboot);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the last response id.
|
* Get the <em>last response id</em>.
|
||||||
* @return the last response id
|
* @return <em>last response id</em>
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
|
@ -79,9 +80,9 @@ public interface AMResponse {
|
||||||
public void setResponseId(int responseId);
|
public void setResponseId(int responseId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the list of newly allocated {@link Container} by the
|
* Get the list of <em>newly allocated</em> <code>Container</code> by the
|
||||||
* <code>ResourceManager</code>.
|
* <code>ResourceManager</code>.
|
||||||
* @return list of newly allocated <code>Container</code>
|
* @return list of <em>newly allocated</em> <code>Container</code>
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
|
@ -112,7 +113,10 @@ public interface AMResponse {
|
||||||
public void clearNewContainers();
|
public void clearNewContainers();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get available headroom for resources in the cluster for the application.
|
* Get the <em>available headroom</em> for resources in the cluster for the
|
||||||
|
* application.
|
||||||
|
* @return limit available headroom for resources in the cluster for the
|
||||||
|
* application
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
|
@ -123,8 +127,8 @@ public interface AMResponse {
|
||||||
public void setAvailableResources(Resource limit);
|
public void setAvailableResources(Resource limit);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the list of completed containers.
|
* Get the list of <em>completed containers</em>.
|
||||||
* @return the list of completed containers
|
* @return the list of <em>completed containers</em>
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
|
|
|
@ -18,38 +18,172 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.records;
|
package org.apache.hadoop.yarn.api.records;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p><code>ApplicationReport</code> is a report of an application.</p>
|
||||||
|
*
|
||||||
|
* <p>It includes details such as:
|
||||||
|
* <ul>
|
||||||
|
* <li>{@link ApplicationId} of the application.</li>
|
||||||
|
* <li>Applications user.</li>
|
||||||
|
* <li>Application queue.</li>
|
||||||
|
* <li>Application name.</li>
|
||||||
|
* <li>Host on which the <code>ApplicationMaster</code>is running.</li>
|
||||||
|
* <li>RPC port of the <code>ApplicationMaster</code>.</li>
|
||||||
|
* <li>Tracking URL.</li>
|
||||||
|
* <li>{@link ApplicationState} of the application.</li>
|
||||||
|
* <li>Diagnostic information in case of errors.</li>
|
||||||
|
* <li>Start time of the application.</li>
|
||||||
|
* <li>Client token of the application (if security is enabled).</li>
|
||||||
|
* </ul>
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @see ClientRMProtocol#getApplicationReport(org.apache.hadoop.yarn.api.protocolrecords.GetApplicationReportRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface ApplicationReport {
|
public interface ApplicationReport {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <code>ApplicationId</code> of the application.
|
||||||
|
* @return <code>ApplicationId</code> of the application
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
ApplicationId getApplicationId();
|
ApplicationId getApplicationId();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setApplicationId(ApplicationId applicationId);
|
void setApplicationId(ApplicationId applicationId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>user</em> who submitted the application.
|
||||||
|
* @return <em>user</em> who submitted the application
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
String getUser();
|
String getUser();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setUser(String user);
|
void setUser(String user);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>queue</em> to which the application was submitted.
|
||||||
|
* @return <em>queue</em> to which the application was submitted
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
String getQueue();
|
String getQueue();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setQueue(String queue);
|
void setQueue(String queue);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the user-defined <em>name</em> of the application.
|
||||||
|
* @return <em>name</em> of the application
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
String getName();
|
String getName();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setName(String name);
|
void setName(String name);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>host</em> on which the <code>ApplicationMaster</code>
|
||||||
|
* is running.
|
||||||
|
* @return <em>host</em> on which the <code>ApplicationMaster</code>
|
||||||
|
* is running
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
String getHost();
|
String getHost();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setHost(String host);
|
void setHost(String host);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>RPC port</em> of the <code>ApplicationMaster</code>.
|
||||||
|
* @return <em>RPC port</em> of the <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
int getRpcPort();
|
int getRpcPort();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setRpcPort(int rpcPort);
|
void setRpcPort(int rpcPort);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>client token</em> for communicating with the
|
||||||
|
* <code>ApplicationMaster</code>.
|
||||||
|
* @return <em>client token</em> for communicating with the
|
||||||
|
* <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
String getClientToken();
|
String getClientToken();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setClientToken(String clientToken);
|
void setClientToken(String clientToken);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <code>ApplicationState</code> of the application.
|
||||||
|
* @return <code>ApplicationState</code> of the application
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
ApplicationState getState();
|
ApplicationState getState();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setState(ApplicationState state);
|
void setState(ApplicationState state);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>diagnositic information</em> of the application in case of
|
||||||
|
* errors.
|
||||||
|
* @return <em>diagnositic information</em> of the application in case
|
||||||
|
* of errors
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
String getDiagnostics();
|
String getDiagnostics();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setDiagnostics(String diagnostics);
|
void setDiagnostics(String diagnostics);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>tracking url</em> for the application.
|
||||||
|
* @return <em>tracking url</em> for the application
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
String getTrackingUrl();
|
String getTrackingUrl();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setTrackingUrl(String url);
|
void setTrackingUrl(String url);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>start time</em> of the application.
|
||||||
|
* @return <em>start time</em> of the application
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
long getStartTime();
|
long getStartTime();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setStartTime(long startTime);
|
void setStartTime(long startTime);
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,68 +22,319 @@ import java.nio.ByteBuffer;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
public interface ApplicationSubmissionContext {
|
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||||
public abstract ApplicationId getApplicationId();
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
public abstract String getApplicationName();
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
public abstract Resource getMasterCapability();
|
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
public abstract Map<String, URL> getAllResources();
|
|
||||||
public abstract URL getResource(String key);
|
|
||||||
|
|
||||||
public abstract Map<String, LocalResource> getAllResourcesTodo();
|
|
||||||
public abstract LocalResource getResourceTodo(String key);
|
|
||||||
|
|
||||||
public abstract List<String> getFsTokenList();
|
|
||||||
public abstract String getFsToken(int index);
|
|
||||||
public abstract int getFsTokenCount();
|
|
||||||
|
|
||||||
public abstract ByteBuffer getFsTokensTodo();
|
|
||||||
|
|
||||||
public abstract Map<String, String> getAllEnvironment();
|
|
||||||
public abstract String getEnvironment(String key);
|
|
||||||
|
|
||||||
public abstract List<String> getCommandList();
|
|
||||||
public abstract String getCommand(int index);
|
|
||||||
public abstract int getCommandCount();
|
|
||||||
|
|
||||||
public abstract String getQueue();
|
|
||||||
public abstract Priority getPriority();
|
|
||||||
public abstract String getUser();
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p><code>ApplicationSubmissionContext</code> represents the all of the
|
||||||
|
* information needed by the <code>ResourceManager</code> to launch
|
||||||
|
* the <code>ApplicationMaster</code> for an application.</p>
|
||||||
|
*
|
||||||
|
* <p>It includes details such as:
|
||||||
|
* <ul>
|
||||||
|
* <li>{@link ApplicationId} of the application.</li>
|
||||||
|
* <li>
|
||||||
|
* {@link Resource} necessary to run the <code>ApplicationMaster</code>.
|
||||||
|
* </li>
|
||||||
|
* <li>Application user.</li>
|
||||||
|
* <li>Application name.</li>
|
||||||
|
* <li>{@link Priority} of the application.</li>
|
||||||
|
* <li>Security tokens (if security is enabled).</li>
|
||||||
|
* <li>
|
||||||
|
* {@link LocalResource} necessary for running the
|
||||||
|
* <code>ApplicationMaster</code> container such
|
||||||
|
* as binaries, jar, shared-objects, side-files etc.
|
||||||
|
* </li>
|
||||||
|
* <li>
|
||||||
|
* Environment variables for the launched <code>ApplicationMaster</code>
|
||||||
|
* process.
|
||||||
|
* </li>
|
||||||
|
* <li>Command to launch the <code>ApplicationMaster</code>.</li>
|
||||||
|
* </ul>
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @see ClientRMProtocol#submitApplication(org.apache.hadoop.yarn.api.protocolrecords.SubmitApplicationRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public interface ApplicationSubmissionContext {
|
||||||
|
/**
|
||||||
|
* Get the <code>ApplicationId</code> of the submitted application.
|
||||||
|
* @return <code>ApplicationId</code> of the submitted application
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public ApplicationId getApplicationId();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the <code>ApplicationId</code> of the submitted application.
|
||||||
|
* @param appplicationId <code>ApplicationId</code> of the submitted
|
||||||
|
* application
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public void setApplicationId(ApplicationId appplicationId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the application <em>name</em>.
|
||||||
|
* @return application name
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public String getApplicationName();
|
||||||
|
|
||||||
public abstract void setApplicationId(ApplicationId appplicationId);
|
/**
|
||||||
public abstract void setApplicationName(String applicationName);
|
* Set the application <em>name</em>.
|
||||||
public abstract void setMasterCapability(Resource masterCapability);
|
* @param applicationName application name
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public void setApplicationName(String applicationName);
|
||||||
|
|
||||||
public abstract void addAllResources(Map<String, URL> resources);
|
/**
|
||||||
public abstract void setResource(String key, URL url);
|
* Get the <em>queue</em> to which the application is being submitted.
|
||||||
public abstract void removeResource(String key);
|
* @return <em>queue</em> to which the application is being submitted
|
||||||
public abstract void clearResources();
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public String getQueue();
|
||||||
|
|
||||||
public abstract void addAllResourcesTodo(Map<String, LocalResource> resourcesTodo);
|
/**
|
||||||
public abstract void setResourceTodo(String key, LocalResource localResource);
|
* Set the <em>queue</em> to which the application is being submitted
|
||||||
public abstract void removeResourceTodo(String key);
|
* @param queue <em>queue</em> to which the application is being submitted
|
||||||
public abstract void clearResourcesTodo();
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public void setQueue(String queue);
|
||||||
|
|
||||||
public abstract void addAllFsTokens(List<String> fsTokens);
|
/**
|
||||||
public abstract void addFsToken(String fsToken);
|
* Get the <code>Priority</code> of the application.
|
||||||
public abstract void removeFsToken(int index);
|
* @return <code>Priority</code> of the application
|
||||||
public abstract void clearFsTokens();
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public Priority getPriority();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the <code>Priority</code> of the application.
|
||||||
|
* @param priority <code>Priority</code> of the application
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public void setPriority(Priority priority);
|
||||||
|
|
||||||
public abstract void setFsTokensTodo(ByteBuffer fsTokensTodo);
|
/**
|
||||||
|
* Get the <em>user</em> submitting the application.
|
||||||
|
* @return <em>user</em> submitting the application
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public String getUser();
|
||||||
|
|
||||||
public abstract void addAllEnvironment(Map<String, String> environment);
|
/**
|
||||||
public abstract void setEnvironment(String key, String env);
|
* Set the <em>user</em> submitting the application.
|
||||||
public abstract void removeEnvironment(String key);
|
* @param user <em>user</em> submitting the application
|
||||||
public abstract void clearEnvironment();
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public void setUser(String user);
|
||||||
|
|
||||||
public abstract void addAllCommands(List<String> commands);
|
/**
|
||||||
public abstract void addCommand(String command);
|
* Get the <code>Resource</code> required to run the
|
||||||
public abstract void removeCommand(int index);
|
* <code>ApplicationMaster</code>.
|
||||||
public abstract void clearCommands();
|
* @return <code>Resource</code> required to run the
|
||||||
|
* <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public Resource getMasterCapability();
|
||||||
|
|
||||||
public abstract void setQueue(String queue);
|
/**
|
||||||
public abstract void setPriority(Priority priority);
|
* Set <code>Resource</code> required to run the
|
||||||
public abstract void setUser(String user);
|
* <code>ApplicationMaster</code>.
|
||||||
|
* @param masterCapability <code>Resource</code> required to run the
|
||||||
|
* <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public void setMasterCapability(Resource masterCapability);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public Map<String, URL> getAllResources();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public URL getResource(String key);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void addAllResources(Map<String, URL> resources);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void setResource(String key, URL url);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void removeResource(String key);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void clearResources();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get all the <code>LocalResource</code> required to run the
|
||||||
|
* <code>ApplicationMaster</code>.
|
||||||
|
* @return <code>LocalResource</code> required to run the
|
||||||
|
* <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public Map<String, LocalResource> getAllResourcesTodo();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public LocalResource getResourceTodo(String key);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add all the <code>LocalResource</code> required to run the
|
||||||
|
* <code>ApplicationMaster</code>.
|
||||||
|
* @param resources all <code>LocalResource</code> required to run the
|
||||||
|
* <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public void addAllResourcesTodo(Map<String, LocalResource> resources);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void setResourceTodo(String key, LocalResource localResource);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void removeResourceTodo(String key);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void clearResourcesTodo();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public List<String> getFsTokenList();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public String getFsToken(int index);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public int getFsTokenCount();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void addAllFsTokens(List<String> fsTokens);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void addFsToken(String fsToken);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void removeFsToken(int index);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void clearFsTokens();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get <em>file-system tokens</em> for the <code>ApplicationMaster</code>.
|
||||||
|
* @return file-system tokens for the <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public ByteBuffer getFsTokensTodo();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set <em>file-system tokens</em> for the <code>ApplicationMaster</code>.
|
||||||
|
* @param fsTokens file-system tokens for the <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public void setFsTokensTodo(ByteBuffer fsTokens);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>environment variables</em> for the
|
||||||
|
* <code>ApplicationMaster</code>.
|
||||||
|
* @return environment variables for the <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public Map<String, String> getAllEnvironment();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public String getEnvironment(String key);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add all of the <em>environment variables</em> for the
|
||||||
|
* <code>ApplicationMaster</code>.
|
||||||
|
* @param environment environment variables for the
|
||||||
|
* <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public void addAllEnvironment(Map<String, String> environment);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void setEnvironment(String key, String env);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void removeEnvironment(String key);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void clearEnvironment();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>commands</em> to launch the <code>ApplicationMaster</code>.
|
||||||
|
* @return commands to launch the <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public List<String> getCommandList();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public String getCommand(int index);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public int getCommandCount();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Add all of the <em>commands</em> to launch the
|
||||||
|
* <code>ApplicationMaster</code>.
|
||||||
|
* @param commands commands to launch the <code>ApplicationMaster</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
public void addAllCommands(List<String> commands);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void addCommand(String command);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void removeCommand(int index);
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
public void clearCommands();
|
||||||
}
|
}
|
|
@ -26,6 +26,7 @@ import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||||
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
||||||
|
import org.apache.hadoop.yarn.api.ContainerManager;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p><code>ContainerLaunchContext</code> represents the all of the information
|
* <p><code>ContainerLaunchContext</code> represents the all of the information
|
||||||
|
@ -43,17 +44,11 @@ import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
||||||
* </li>
|
* </li>
|
||||||
* <li>Optional, application-specific binary service data.</li>
|
* <li>Optional, application-specific binary service data.</li>
|
||||||
* <li>Environment variables for the launched process.</li>
|
* <li>Environment variables for the launched process.</li>
|
||||||
* <li>Command to be executed to launch the container.</li>
|
* <li>Command to launch the container.</li>
|
||||||
* <li></li>
|
|
||||||
* <li></li>
|
|
||||||
* <li></li>
|
|
||||||
* <li></li>
|
|
||||||
* <li></li>
|
|
||||||
* <li></li>
|
|
||||||
* <li></li>
|
|
||||||
* <li></li>
|
|
||||||
* </ul>
|
* </ul>
|
||||||
* </p>
|
* </p>
|
||||||
|
*
|
||||||
|
* @see ContainerManager#startContainer(org.apache.hadoop.yarn.api.protocolrecords.StartContainerRequest)
|
||||||
*/
|
*/
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
|
@ -66,8 +61,12 @@ public interface ContainerLaunchContext {
|
||||||
@Stable
|
@Stable
|
||||||
ContainerId getContainerId();
|
ContainerId getContainerId();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Set <code>ContainerId</code> of container to be launched.
|
||||||
|
* @param containerId et <code>ContainerId</code> of container to be launched
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
void setContainerId(ContainerId containerId);
|
void setContainerId(ContainerId containerId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -78,8 +77,12 @@ public interface ContainerLaunchContext {
|
||||||
@Stable
|
@Stable
|
||||||
String getUser();
|
String getUser();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Set the <em>user</em> to whom the container has been allocated
|
||||||
|
* @param user <em>user</em> to whom the container has been allocated
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
void setUser(String user);
|
void setUser(String user);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -91,9 +94,14 @@ public interface ContainerLaunchContext {
|
||||||
@Public
|
@Public
|
||||||
@Stable
|
@Stable
|
||||||
Resource getResource();
|
Resource getResource();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Set the <code>Resource</code> allocated to the container by the
|
||||||
|
* <code>ResourceManager</code>.
|
||||||
|
* @param resource allocated resource
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
void setResource(Resource resource);
|
void setResource(Resource resource);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -104,8 +112,12 @@ public interface ContainerLaunchContext {
|
||||||
@Stable
|
@Stable
|
||||||
ByteBuffer getContainerTokens();
|
ByteBuffer getContainerTokens();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Set security tokens (if security is enabled).
|
||||||
|
* @param containerToken security tokens
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
void setContainerTokens(ByteBuffer containerToken);
|
void setContainerTokens(ByteBuffer containerToken);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -119,9 +131,13 @@ public interface ContainerLaunchContext {
|
||||||
@Private
|
@Private
|
||||||
@Unstable
|
@Unstable
|
||||||
LocalResource getLocalResource(String key);
|
LocalResource getLocalResource(String key);
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Add all <code>LocalResource</code> required by the container.
|
||||||
|
* @param localResources <code>LocalResource</code> required by the container
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
void addAllLocalResources(Map<String, LocalResource> localResources);
|
void addAllLocalResources(Map<String, LocalResource> localResources);
|
||||||
|
|
||||||
@Private
|
@Private
|
||||||
|
@ -147,9 +163,13 @@ public interface ContainerLaunchContext {
|
||||||
@Private
|
@Private
|
||||||
@Unstable
|
@Unstable
|
||||||
ByteBuffer getServiceData(String key);
|
ByteBuffer getServiceData(String key);
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Add add application-specific binary service data.
|
||||||
|
* @param serviceData application-specific binary service data
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
void addAllServiceData(Map<String, ByteBuffer> serviceData);
|
void addAllServiceData(Map<String, ByteBuffer> serviceData);
|
||||||
|
|
||||||
@Private
|
@Private
|
||||||
|
@ -176,8 +196,12 @@ public interface ContainerLaunchContext {
|
||||||
@Unstable
|
@Unstable
|
||||||
String getEnv(String key);
|
String getEnv(String key);
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Add <em>environment variables</em> for the launched container.
|
||||||
|
* @param env <em>environment variables</em> for the launched container
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
void addAllEnv(Map<String, String> env);
|
void addAllEnv(Map<String, String> env);
|
||||||
|
|
||||||
@Private
|
@Private
|
||||||
|
@ -208,8 +232,12 @@ public interface ContainerLaunchContext {
|
||||||
@Unstable
|
@Unstable
|
||||||
int getCommandCount();
|
int getCommandCount();
|
||||||
|
|
||||||
@Private
|
/**
|
||||||
@Unstable
|
* Add the list of <em>commands</em> for launching the container.
|
||||||
|
* @param commands the list of <em>commands</em> for launching the container
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
void addAllCommands(List<String> commands);
|
void addAllCommands(List<String> commands);
|
||||||
|
|
||||||
@Private
|
@Private
|
||||||
|
|
|
@ -18,16 +18,92 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.records;
|
package org.apache.hadoop.yarn.api.records;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.yarn.api.ContainerManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p><code>LocalResource</code> represents a local resource required to
|
||||||
|
* run a container.</p>
|
||||||
|
*
|
||||||
|
* <p>The <code>NodeManager</code> is responsible for localizing the resource
|
||||||
|
* prior to launching the container.</p>
|
||||||
|
*
|
||||||
|
* <p>Applications can specify {@link LocalResourceType} and
|
||||||
|
* {@link LocalResourceVisibility}.</p>
|
||||||
|
*
|
||||||
|
* @see LocalResourceType
|
||||||
|
* @see LocalResourceVisibility
|
||||||
|
* @see ContainerLaunchContext
|
||||||
|
* @see ApplicationSubmissionContext
|
||||||
|
* @see ContainerManager#startContainer(org.apache.hadoop.yarn.api.protocolrecords.StartContainerRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface LocalResource {
|
public interface LocalResource {
|
||||||
public abstract URL getResource();
|
/**
|
||||||
public abstract long getSize();
|
* Get the <em>location</em> of the resource to be localized.
|
||||||
public abstract long getTimestamp();
|
* @return <em>location</em> of the resource to be localized
|
||||||
public abstract LocalResourceType getType();
|
*/
|
||||||
public abstract LocalResourceVisibility getVisibility();
|
public URL getResource();
|
||||||
|
|
||||||
public abstract void setResource(URL resource);
|
/**
|
||||||
public abstract void setSize(long size);
|
* Set <em>location</em> of the resource to be localized.
|
||||||
public abstract void setTimestamp(long timestamp);
|
* @param resource <em>location</em> of the resource to be localized
|
||||||
public abstract void setType(LocalResourceType type);
|
*/
|
||||||
public abstract void setVisibility(LocalResourceVisibility visibility);
|
public void setResource(URL resource);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>size</em> of the resource to be localized.
|
||||||
|
* @return <em>size</em> of the resource to be localized
|
||||||
|
*/
|
||||||
|
public long getSize();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the <em>size</em> of the resource to be localized.
|
||||||
|
* @param size <em>size</em> of the resource to be localized
|
||||||
|
*/
|
||||||
|
public void setSize(long size);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the original <em>timestamp</em> of the resource to be localized, used
|
||||||
|
* for verification.
|
||||||
|
* @return <em>timestamp</em> of the resource to be localized
|
||||||
|
*/
|
||||||
|
public long getTimestamp();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the <em>timestamp</em> of the resource to be localized, used
|
||||||
|
* for verification.
|
||||||
|
* @param timestamp <em>timestamp</em> of the resource to be localized
|
||||||
|
*/
|
||||||
|
public void setTimestamp(long timestamp);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <code>LocalResourceType</code> of the resource to be localized.
|
||||||
|
* @return <code>LocalResourceType</code> of the resource to be localized
|
||||||
|
*/
|
||||||
|
public LocalResourceType getType();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the <code>LocalResourceType</code> of the resource to be localized.
|
||||||
|
* @param type <code>LocalResourceType</code> of the resource to be localized
|
||||||
|
*/
|
||||||
|
public void setType(LocalResourceType type);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <code>LocalResourceVisibility</code> of the resource to be
|
||||||
|
* localized.
|
||||||
|
* @return <code>LocalResourceVisibility</code> of the resource to be
|
||||||
|
* localized
|
||||||
|
*/
|
||||||
|
public LocalResourceVisibility getVisibility();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Set the <code>LocalResourceVisibility</code> of the resource to be
|
||||||
|
* localized.
|
||||||
|
* @param visibility <code>LocalResourceVisibility</code> of the resource to be
|
||||||
|
* localized
|
||||||
|
*/
|
||||||
|
public void setVisibility(LocalResourceVisibility visibility);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,42 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.records;
|
package org.apache.hadoop.yarn.api.records;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.yarn.api.ContainerManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p><code>LocalResourceType</code> specifies the <em>type</em>
|
||||||
|
* of a resource localized by the <code>NodeManager</code>.</p>
|
||||||
|
*
|
||||||
|
* <p>The <em>type</em> can be one of:
|
||||||
|
* <ul>
|
||||||
|
* <li>
|
||||||
|
* {@link #FILE} - Regular file i.e. uninterpreted bytes.
|
||||||
|
* </li>
|
||||||
|
* <li>
|
||||||
|
* {@link #ARCHIVE} - Archive, which is automatically unarchived by the
|
||||||
|
* <code>NodeManager</code>.
|
||||||
|
* </li>
|
||||||
|
* </ul>
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @see LocalResource
|
||||||
|
* @see ContainerLaunchContext
|
||||||
|
* @see ApplicationSubmissionContext
|
||||||
|
* @see ContainerManager#startContainer(org.apache.hadoop.yarn.api.protocolrecords.StartContainerRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public enum LocalResourceType {
|
public enum LocalResourceType {
|
||||||
ARCHIVE, FILE
|
|
||||||
|
/**
|
||||||
|
* Archive, which is automatically unarchived by the <code>NodeManager</code>.
|
||||||
|
*/
|
||||||
|
ARCHIVE,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Regular file i.e. uninterpreted bytes.
|
||||||
|
*/
|
||||||
|
FILE
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,48 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.records;
|
package org.apache.hadoop.yarn.api.records;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.yarn.api.ContainerManager;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p><code>LocalResourceVisibility</code> specifies the <em>visibility</em>
|
||||||
|
* of a resource localized by the <code>NodeManager</code>.</p>
|
||||||
|
*
|
||||||
|
* <p>The <em>visibility</em> can be one of:
|
||||||
|
* <ul>
|
||||||
|
* <li>{@link #PUBLIC} - Shared by all users on the node.</li>
|
||||||
|
* <li>
|
||||||
|
* {@link #PRIVATE} - Shared among all applications of the
|
||||||
|
* <em>same user</em> on the node.
|
||||||
|
* </li>
|
||||||
|
* <li>
|
||||||
|
* {@link #APPLICATION} - Shared only among containers of the
|
||||||
|
* <em>same application</em> on the node.
|
||||||
|
* </li>
|
||||||
|
* </ul>
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @see LocalResource
|
||||||
|
* @see ContainerLaunchContext
|
||||||
|
* @see ApplicationSubmissionContext
|
||||||
|
* @see ContainerManager#startContainer(org.apache.hadoop.yarn.api.protocolrecords.StartContainerRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public enum LocalResourceVisibility {
|
public enum LocalResourceVisibility {
|
||||||
PUBLIC, PRIVATE, APPLICATION
|
/**
|
||||||
|
* Shared by all users on the node.
|
||||||
|
*/
|
||||||
|
PUBLIC,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shared among all applications of the <em>same user</em> on the node.
|
||||||
|
*/
|
||||||
|
PRIVATE,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Shared only among containers of the <em>same application</em> on the node.
|
||||||
|
*/
|
||||||
|
APPLICATION
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,17 +17,69 @@
|
||||||
*/
|
*/
|
||||||
package org.apache.hadoop.yarn.api.records;
|
package org.apache.hadoop.yarn.api.records;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p><code>NodeHealthStatus</code> is a summary of the health status of the
|
||||||
|
* node.</p>
|
||||||
|
*
|
||||||
|
* <p>It includes information such as:
|
||||||
|
* <ul>
|
||||||
|
* <li>
|
||||||
|
* An indicator of whether the node is healthy, as determined by the
|
||||||
|
* health-check script.
|
||||||
|
* </li>
|
||||||
|
* <li>The previous time at which the health status was reported.</li>
|
||||||
|
* <li>A diagnostic report on the health status.</li>
|
||||||
|
* <li></li>
|
||||||
|
* <li></li>
|
||||||
|
* </ul>
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @see NodeReport
|
||||||
|
* @see ClientRMProtocol#getClusterNodes(org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface NodeHealthStatus {
|
public interface NodeHealthStatus {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Is the node healthy?
|
||||||
|
* @return <code>true</code> if the node is healthy, else <code>false</code>
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
boolean getIsNodeHealthy();
|
boolean getIsNodeHealthy();
|
||||||
|
|
||||||
String getHealthReport();
|
@Private
|
||||||
|
@Unstable
|
||||||
long getLastHealthReportTime();
|
|
||||||
|
|
||||||
void setIsNodeHealthy(boolean isNodeHealthy);
|
void setIsNodeHealthy(boolean isNodeHealthy);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>diagnostic health report</em> of the node.
|
||||||
|
* @return <em>diagnostic health report</em> of the node
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
String getHealthReport();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setHealthReport(String healthReport);
|
void setHealthReport(String healthReport);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>last timestamp</em> at which the health report was received.
|
||||||
|
* @return <em>last timestamp</em> at which the health report was received
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
|
long getLastHealthReportTime();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setLastHealthReportTime(long lastHealthReport);
|
void setLastHealthReportTime(long lastHealthReport);
|
||||||
}
|
}
|
|
@ -18,19 +18,113 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.records;
|
package org.apache.hadoop.yarn.api.records;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p><code>NodeReport</code> is a summary of runtime information of a
|
||||||
|
* node in the cluster.</p>
|
||||||
|
*
|
||||||
|
* <p>It includes details such as:
|
||||||
|
* <ul>
|
||||||
|
* <li>{@link NodeId} of the node.</li>
|
||||||
|
* <li>HTTP Tracking URL of the node.</li>
|
||||||
|
* <li>Rack name for the node.</li>
|
||||||
|
* <li>Used {@link Resource} on the node.</li>
|
||||||
|
* <li>Total available {@link Resource} of the node.</li>
|
||||||
|
* <li>Number of running containers on the node.</li>
|
||||||
|
* <li>{@link NodeHealthStatus} of the node.</li>
|
||||||
|
* </ul>
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @see NodeHealthStatus
|
||||||
|
* @see ClientRMProtocol#getClusterNodes(org.apache.hadoop.yarn.api.protocolrecords.GetClusterNodesRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface NodeReport {
|
public interface NodeReport {
|
||||||
|
/**
|
||||||
|
* Get the <code>NodeId</code> of the node.
|
||||||
|
* @return <code>NodeId</code> of the node
|
||||||
|
*/
|
||||||
NodeId getNodeId();
|
NodeId getNodeId();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setNodeId(NodeId nodeId);
|
void setNodeId(NodeId nodeId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>http address</em> of the node.
|
||||||
|
* @return <em>http address</em> of the node
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
String getHttpAddress();
|
String getHttpAddress();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setHttpAddress(String httpAddress);
|
void setHttpAddress(String httpAddress);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>rack name</em> for the node.
|
||||||
|
* @return <em>rack name</em> for the node
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
String getRackName();
|
String getRackName();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setRackName(String rackName);
|
void setRackName(String rackName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get <em>used</em> <code>Resource</code> on the node.
|
||||||
|
* @return <em>used</em> <code>Resource</code> on the node
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
Resource getUsed();
|
Resource getUsed();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setUsed(Resource used);
|
void setUsed(Resource used);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>total</em> <code>Resource</code> on the node.
|
||||||
|
* @return <em>total</em> <code>Resource</code> on the node
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
Resource getCapability();
|
Resource getCapability();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setCapability(Resource capability);
|
void setCapability(Resource capability);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>number of running containers</em> on the node.
|
||||||
|
* @return <em>number of running containers</em> on the node
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
int getNumContainers();
|
int getNumContainers();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setNumContainers(int numContainers);
|
void setNumContainers(int numContainers);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <code>NodeHealthStatus</code> of the node.
|
||||||
|
* @return <code>NodeHealthStatus</code> of the node
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
NodeHealthStatus getNodeHealthStatus();
|
NodeHealthStatus getNodeHealthStatus();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setNodeHealthStatus(NodeHealthStatus nodeHealthStatus);
|
void setNodeHealthStatus(NodeHealthStatus nodeHealthStatus);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,8 +18,39 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.records;
|
package org.apache.hadoop.yarn.api.records;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p><code>QueueACL</code> enumerates the various ACLs for queues.</p>
|
||||||
|
*
|
||||||
|
* <p>The ACLs are one of:
|
||||||
|
* <ul>
|
||||||
|
* <li>{@link #SUBMIT_JOB} - ACL to submit jobs to the queue.</li>
|
||||||
|
* <li>{@link #ADMINISTER_QUEUE} - ACL to administer the queue.</li>
|
||||||
|
* <li>{@link #ADMINISTER_JOBS} - ACL to administer jobs in the queue.</li>
|
||||||
|
* </ul>
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @see QueueInfo
|
||||||
|
* @see ClientRMProtocol#getQueueUserAcls(org.apache.hadoop.yarn.api.protocolrecords.GetQueueUserAclsInfoRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public enum QueueACL {
|
public enum QueueACL {
|
||||||
|
/**
|
||||||
|
* ACL to submit jobs to the queue.
|
||||||
|
*/
|
||||||
SUBMIT_JOB,
|
SUBMIT_JOB,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ACL to administer the queue.
|
||||||
|
*/
|
||||||
ADMINISTER_QUEUE,
|
ADMINISTER_QUEUE,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ACL to administer jobs in the queue.
|
||||||
|
*/
|
||||||
ADMINISTER_JOBS; // currently unused
|
ADMINISTER_JOBS; // currently unused
|
||||||
}
|
}
|
|
@ -20,25 +20,114 @@ package org.apache.hadoop.yarn.api.records;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>QueueInfo</p> is a report of the runtime information of the queue.</p>
|
||||||
|
*
|
||||||
|
* <p>It includes information such as:
|
||||||
|
* <ul>
|
||||||
|
* <li>Queue name.</li>
|
||||||
|
* <li>Capacity of the queue.</li>
|
||||||
|
* <li>Maximum capacity of the queue.</li>
|
||||||
|
* <li>Current capacity of the queue.</li>
|
||||||
|
* <li>Child queues.</li>
|
||||||
|
* <li>Running applications.</li>
|
||||||
|
* <li>{@link QueueState} of the queue.</li>
|
||||||
|
* </ul>
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @see QueueState
|
||||||
|
* @see ClientRMProtocol#getQueueInfo(org.apache.hadoop.yarn.api.protocolrecords.GetQueueInfoRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface QueueInfo {
|
public interface QueueInfo {
|
||||||
|
/**
|
||||||
|
* Get the <em>name</em> of the queue.
|
||||||
|
* @return <em>name</em> of the queue
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
String getQueueName();
|
String getQueueName();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setQueueName(String queueName);
|
void setQueueName(String queueName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>configured capacity</em> of the queue.
|
||||||
|
* @return <em>configured capacity</em> of the queue
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
float getCapacity();
|
float getCapacity();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setCapacity(float capacity);
|
void setCapacity(float capacity);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>maximum capacity</em> of the queue.
|
||||||
|
* @return <em>maximum capacity</em> of the queue
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
float getMaximumCapacity();
|
float getMaximumCapacity();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setMaximumCapacity(float maximumCapacity);
|
void setMaximumCapacity(float maximumCapacity);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>current capacity</em> of the queue.
|
||||||
|
* @return <em>current capacity</em> of the queue
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
float getCurrentCapacity();
|
float getCurrentCapacity();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setCurrentCapacity(float currentCapacity);
|
void setCurrentCapacity(float currentCapacity);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>child queues</em> of the queue.
|
||||||
|
* @return <em>child queues</em> of the queue
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
List<QueueInfo> getChildQueues();
|
List<QueueInfo> getChildQueues();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setChildQueues(List<QueueInfo> childQueues);
|
void setChildQueues(List<QueueInfo> childQueues);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <em>running applications</em> of the queue.
|
||||||
|
* @return <em>running applications</em> of the queue
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
List<ApplicationReport> getApplications();
|
List<ApplicationReport> getApplications();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setApplications(List<ApplicationReport> applications);
|
void setApplications(List<ApplicationReport> applications);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the <code>QueueState</code> of the queue.
|
||||||
|
* @return <code>QueueState</code> of the queue
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
QueueState getQueueState();
|
QueueState getQueueState();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setQueueState(QueueState queueState);
|
void setQueueState(QueueState queueState);
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,10 +18,33 @@
|
||||||
|
|
||||||
package org.apache.hadoop.yarn.api.records;
|
package org.apache.hadoop.yarn.api.records;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* State of a Queue
|
* <p>State of a Queue.</p>
|
||||||
|
*
|
||||||
|
* <p>A queue is one of:
|
||||||
|
* <ul>
|
||||||
|
* <li>{@link #RUNNING} - normal state.</li>
|
||||||
|
* <li>{@link #STOPPED} - not accepting new application submissions.
|
||||||
|
* </ul>
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @see QueueInfo
|
||||||
|
* @see ClientRMProtocol#getQueueInfo(org.apache.hadoop.yarn.api.protocolrecords.GetQueueInfoRequest)
|
||||||
*/
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public enum QueueState {
|
public enum QueueState {
|
||||||
STOPPED,
|
/**
|
||||||
|
* Stopped - Not accepting submissions of new applications.
|
||||||
|
*/
|
||||||
|
STOPPED,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Running - normal operation.
|
||||||
|
*/
|
||||||
RUNNING
|
RUNNING
|
||||||
}
|
}
|
|
@ -20,10 +20,43 @@ package org.apache.hadoop.yarn.api.records;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Private;
|
||||||
|
import org.apache.hadoop.classification.InterfaceAudience.Public;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Stable;
|
||||||
|
import org.apache.hadoop.classification.InterfaceStability.Unstable;
|
||||||
|
import org.apache.hadoop.yarn.api.ClientRMProtocol;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p><code>QueueUserACLInfo</code> provides information {@link QueueACL} for
|
||||||
|
* the given user.</p>
|
||||||
|
*
|
||||||
|
* @see QueueACL
|
||||||
|
* @see ClientRMProtocol#getQueueUserAcls(org.apache.hadoop.yarn.api.protocolrecords.GetQueueUserAclsInfoRequest)
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
public interface QueueUserACLInfo {
|
public interface QueueUserACLInfo {
|
||||||
|
/**
|
||||||
|
* Get the <em>queue name</em> of the queue.
|
||||||
|
* @return <em>queue name</em> of the queue
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
String getQueueName();
|
String getQueueName();
|
||||||
void setQueueName(String queueName);
|
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
|
void setQueueName(String queueName);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get the list of <code>QueueACL</code> for the given user.
|
||||||
|
* @return list of <code>QueueACL</code> for the given user
|
||||||
|
*/
|
||||||
|
@Public
|
||||||
|
@Stable
|
||||||
List<QueueACL> getUserAcls();
|
List<QueueACL> getUserAcls();
|
||||||
|
|
||||||
|
@Private
|
||||||
|
@Unstable
|
||||||
void setUserAcls(List<QueueACL> acls);
|
void setUserAcls(List<QueueACL> acls);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue