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 {