diff --git a/src/main/java/org/apache/hadoop/yarn/api/records/ApplicationReport.java b/src/main/java/org/apache/hadoop/yarn/api/records/ApplicationReport.java index 412c22b..b2c02fc 100644 --- a/src/main/java/org/apache/hadoop/yarn/api/records/ApplicationReport.java +++ b/src/main/java/org/apache/hadoop/yarn/api/records/ApplicationReport.java @@ -56,7 +56,7 @@ public abstract class ApplicationReport { @Unstable public static ApplicationReport newInstance(ApplicationId applicationId, ApplicationAttemptId applicationAttemptId, String user, String queue, - String name, String host, int rpcPort, Token clientToAMToken, + String name,String description, String host, int rpcPort, Token clientToAMToken, YarnApplicationState state, String diagnostics, String url, long startTime, long finishTime, FinalApplicationStatus finalStatus, ApplicationResourceUsageReport appResources, String origTrackingUrl, @@ -67,6 +67,7 @@ public abstract class ApplicationReport { report.setUser(user); report.setQueue(queue); report.setName(name); + report.setDescription(description); report.setHost(host); report.setRpcPort(rpcPort); report.setClientToAMToken(clientToAMToken); @@ -144,7 +145,17 @@ public abstract class ApplicationReport { @Private @Unstable public abstract void setName(String name); + /** + * Get the user-defined name of the application. + * @return name of the application + */ + @Public + @Stable + public abstract String getDescription(); + @Private + @Unstable + public abstract void setDescription(String description); /** * Get the host on which the ApplicationMaster * is running. diff --git a/src/main/java/org/apache/hadoop/yarn/api/records/ApplicationSubmissionContext.java b/src/main/java/org/apache/hadoop/yarn/api/records/ApplicationSubmissionContext.java index f1ebbfe..5152a5b 100644 --- a/src/main/java/org/apache/hadoop/yarn/api/records/ApplicationSubmissionContext.java +++ b/src/main/java/org/apache/hadoop/yarn/api/records/ApplicationSubmissionContext.java @@ -70,7 +70,7 @@ public abstract class ApplicationSubmissionContext { @Public @Stable public static ApplicationSubmissionContext newInstance( - ApplicationId applicationId, String applicationName, String queue, + ApplicationId applicationId, String applicationName,String description, String queue, Priority priority, ContainerLaunchContext amContainer, boolean isUnmanagedAM, boolean cancelTokensWhenComplete, int maxAppAttempts, Resource resource, String applicationType, @@ -80,6 +80,7 @@ public abstract class ApplicationSubmissionContext { Records.newRecord(ApplicationSubmissionContext.class); context.setApplicationId(applicationId); context.setApplicationName(applicationName); + context.setApplicationDescription(description); context.setQueue(queue); context.setPriority(priority); context.setAMContainerSpec(amContainer); @@ -102,12 +103,12 @@ public abstract class ApplicationSubmissionContext { } public static ApplicationSubmissionContext newInstance( - ApplicationId applicationId, String applicationName, String queue, + ApplicationId applicationId, String applicationName, String description, String queue, Priority priority, ContainerLaunchContext amContainer, boolean isUnmanagedAM, boolean cancelTokensWhenComplete, int maxAppAttempts, Resource resource, String applicationType, boolean keepContainers) { - return newInstance(applicationId, applicationName, queue, priority, + return newInstance(applicationId, applicationName, description, queue, priority, amContainer, isUnmanagedAM, cancelTokensWhenComplete, maxAppAttempts, resource, applicationType, keepContainers, null, null); } @@ -115,11 +116,11 @@ public abstract class ApplicationSubmissionContext { @Public @Stable public static ApplicationSubmissionContext newInstance( - ApplicationId applicationId, String applicationName, String queue, + ApplicationId applicationId, String applicationName,String description, String queue, Priority priority, ContainerLaunchContext amContainer, boolean isUnmanagedAM, boolean cancelTokensWhenComplete, int maxAppAttempts, Resource resource, String applicationType) { - return newInstance(applicationId, applicationName, queue, priority, + return newInstance(applicationId, applicationName,description, queue, priority, amContainer, isUnmanagedAM, cancelTokensWhenComplete, maxAppAttempts, resource, applicationType, false, null, null); } @@ -127,11 +128,11 @@ public abstract class ApplicationSubmissionContext { @Public @Stable public static ApplicationSubmissionContext newInstance( - ApplicationId applicationId, String applicationName, String queue, + ApplicationId applicationId, String applicationName,String description, String queue, Priority priority, ContainerLaunchContext amContainer, boolean isUnmanagedAM, boolean cancelTokensWhenComplete, int maxAppAttempts, Resource resource) { - return newInstance(applicationId, applicationName, queue, priority, + return newInstance(applicationId, applicationName,description, queue, priority, amContainer, isUnmanagedAM, cancelTokensWhenComplete, maxAppAttempts, resource, null); } @@ -139,7 +140,7 @@ public abstract class ApplicationSubmissionContext { @Public @Stable public static ApplicationSubmissionContext newInstance( - ApplicationId applicationId, String applicationName, String queue, + ApplicationId applicationId, String applicationName,String description, String queue, ContainerLaunchContext amContainer, boolean isUnmanagedAM, boolean cancelTokensWhenComplete, int maxAppAttempts, String applicationType, boolean keepContainers, @@ -148,6 +149,7 @@ public abstract class ApplicationSubmissionContext { Records.newRecord(ApplicationSubmissionContext.class); context.setApplicationId(applicationId); context.setApplicationName(applicationName); + context.setApplicationDescription(description); context.setQueue(queue); context.setAMContainerSpec(amContainer); context.setUnmanagedAM(isUnmanagedAM); @@ -162,13 +164,13 @@ public abstract class ApplicationSubmissionContext { @Public @Stable public static ApplicationSubmissionContext newInstance( - ApplicationId applicationId, String applicationName, String queue, + ApplicationId applicationId, String applicationName,String description, String queue, Priority priority, ContainerLaunchContext amContainer, boolean isUnmanagedAM, boolean cancelTokensWhenComplete, int maxAppAttempts, Resource resource, String applicationType, boolean keepContainers, long attemptFailuresValidityInterval) { ApplicationSubmissionContext context = - newInstance(applicationId, applicationName, queue, priority, + newInstance(applicationId, applicationName,description, queue, priority, amContainer, isUnmanagedAM, cancelTokensWhenComplete, maxAppAttempts, resource, applicationType, keepContainers); context.setAttemptFailuresValidityInterval(attemptFailuresValidityInterval); @@ -178,13 +180,13 @@ public abstract class ApplicationSubmissionContext { @Public @Stable public static ApplicationSubmissionContext newInstance( - ApplicationId applicationId, String applicationName, String queue, + ApplicationId applicationId, String applicationName,String description, String queue, Priority priority, ContainerLaunchContext amContainer, boolean isUnmanagedAM, boolean cancelTokensWhenComplete, int maxAppAttempts, Resource resource, String applicationType, boolean keepContainers, LogAggregationContext logAggregationContext) { ApplicationSubmissionContext context = - newInstance(applicationId, applicationName, queue, priority, + newInstance(applicationId, applicationName,description, queue, priority, amContainer, isUnmanagedAM, cancelTokensWhenComplete, maxAppAttempts, resource, applicationType, keepContainers); context.setLogAggregationContext(logAggregationContext); @@ -214,7 +216,13 @@ public abstract class ApplicationSubmissionContext { @Public @Stable public abstract String getApplicationName(); - + /** + * Get the application description. + * @return application description + */ + @Public + @Stable + public abstract String getApplicationDescription(); /** * Set the application name. * @param applicationName application name @@ -227,6 +235,14 @@ public abstract class ApplicationSubmissionContext { * Get the queue to which the application is being submitted. * @return queue to which the application is being submitted */ + /** + * Set the application description. + * @param applicationName application description + */ + @Public + @Stable + public abstract void setApplicationDescription(String applicationDescription); + @Public @Stable public abstract String getQueue(); diff --git a/src/main/proto/server/application_history_server.proto b/src/main/proto/server/application_history_server.proto index 0fcf2ac..850bc7a 100644 --- a/src/main/proto/server/application_history_server.proto +++ b/src/main/proto/server/application_history_server.proto @@ -36,6 +36,7 @@ message ApplicationHistoryDataProto { optional string diagnostics_info = 9; optional FinalApplicationStatusProto final_application_status = 10; optional YarnApplicationStateProto yarn_application_state = 11; + optional string application_description = 12; } message ApplicationStartDataProto { @@ -46,6 +47,7 @@ message ApplicationStartDataProto { optional string queue = 5; optional int64 submit_time = 6; optional int64 start_time = 7; + optional string application_description = 8; } message ApplicationFinishDataProto { diff --git a/src/main/proto/yarn_protos.proto b/src/main/proto/yarn_protos.proto index 5c86c2d..02808a1 100644 --- a/src/main/proto/yarn_protos.proto +++ b/src/main/proto/yarn_protos.proto @@ -98,6 +98,7 @@ message ContainerReportProto { optional string log_url = 8; optional int32 container_exit_status = 9; optional ContainerStateProto container_state = 10; + optional string node_http_address = 11; } enum YarnApplicationStateProto { @@ -192,6 +193,7 @@ message ApplicationReportProto { optional string applicationType = 18; optional hadoop.common.TokenProto am_rm_token = 19; repeated string applicationTags = 20; + optional string description = 21; } message ApplicationAttemptReportProto { @@ -302,6 +304,7 @@ message ApplicationSubmissionContextProto { optional ReservationIdProto reservation_id = 15; optional string node_label_expression = 16; optional ResourceRequestProto am_container_resource_request = 17; + optional string application_description = 18 [default = "N/A"]; } message LogAggregationContextProto {