hadoop git commit: YARN-3230. Clarify application states on the web UI. (Jian He via wangda)

2015-09-01 Thread vinodkv
Repository: hadoop
Updated Branches:
  refs/heads/branch-2.6.1 bb1b87f3b -> 8b5bdac98


YARN-3230. Clarify application states on the web UI. (Jian He via wangda)

(cherry picked from commit ce5bf927c3d9f212798de1bf8706e5e9def235a1)
(cherry picked from commit a1963968d2a9589fcefaab0d63feeb68c07f4d06)
(cherry picked from commit 591e261ccf1fb5dd25e87665c8d5c0341ff6fb24)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/8b5bdac9
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/8b5bdac9
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/8b5bdac9

Branch: refs/heads/branch-2.6.1
Commit: 8b5bdac98eddad516f7faa74596b6293d50a17a7
Parents: bb1b87f
Author: Wangda Tan 
Authored: Fri Feb 20 10:39:28 2015 -0800
Committer: Vinod Kumar Vavilapalli 
Committed: Tue Sep 1 14:34:07 2015 -0700

--
 hadoop-yarn-project/CHANGES.txt |  2 ++
 .../server/resourcemanager/webapp/AppBlock.java | 33 ++--
 .../resourcemanager/webapp/AppsBlock.java   |  6 ++--
 .../resourcemanager/webapp/dao/AppInfo.java |  8 ++---
 4 files changed, 41 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/8b5bdac9/hadoop-yarn-project/CHANGES.txt
--
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index 1d0518e..cd70bcb 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -8,6 +8,8 @@ Release 2.6.1 - UNRELEASED
 
   IMPROVEMENTS
 
+YARN-3230. Clarify application states on the web UI. (Jian He via wangda)
+
   OPTIMIZATIONS
 
   BUG FIXES

http://git-wip-us.apache.org/repos/asf/hadoop/blob/8b5bdac9/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
index 1856d75..c2b376e 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
@@ -32,8 +32,10 @@ import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.util.StringUtils;
 import org.apache.hadoop.yarn.api.records.ApplicationAccessType;
 import org.apache.hadoop.yarn.api.records.ApplicationId;
+import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
 import org.apache.hadoop.yarn.api.records.QueueACL;
 import org.apache.hadoop.yarn.api.records.Resource;
+import org.apache.hadoop.yarn.api.records.YarnApplicationState;
 import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
 import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager;
 import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
@@ -131,8 +133,9 @@ public class AppBlock extends HtmlBlock {
 ._("Name:", app.getName())
 ._("Application Type:", app.getApplicationType())
 ._("Application Tags:", app.getApplicationTags())
-._("State:", app.getState())
-._("FinalStatus:", app.getFinalStatus())
+._("YarnApplicationState:", clarifyAppState(app.getState()))
+._("FinalStatus reported by AM:",
+  clairfyAppFinalStatus(app.getFinalStatus()))
 ._("Started:", Times.format(app.getStartTime()))
 ._("Elapsed:",
 StringUtils.formatTime(Times.elapsed(app.getStartTime(),
@@ -198,4 +201,30 @@ public class AppBlock extends HtmlBlock {
 table._();
 div._();
   }
+
+  private String clarifyAppState(YarnApplicationState state) {
+String ret = state.toString();
+switch (state) {
+case NEW:
+  return ret + ": waiting for application to be initialized";
+case NEW_SAVING:
+  return ret + ": waiting for application to be persisted in state-store.";
+case SUBMITTED:
+  return ret + ": waiting for application to be accepted by scheduler.";
+case ACCEPTED:
+  return ret + ": waiting for AM container to be allocated, launched and"
+  + " register with RM.";
+case RUNNING:
+  return ret + ": AM has registered with RM and started running.";
+default:
+  return ret;
+}
+  }
+
+ 

[13/50] [abbrv] hadoop git commit: YARN-3230. Clarify application states on the web UI. (Jian He via wangda)

2015-02-25 Thread zjshen
YARN-3230. Clarify application states on the web UI. (Jian He via wangda)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/ce5bf927
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/ce5bf927
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/ce5bf927

Branch: refs/heads/YARN-2928
Commit: ce5bf927c3d9f212798de1bf8706e5e9def235a1
Parents: c33ae27
Author: Wangda Tan wan...@apache.org
Authored: Fri Feb 20 10:39:28 2015 -0800
Committer: Wangda Tan wan...@apache.org
Committed: Fri Feb 20 10:39:28 2015 -0800

--
 hadoop-yarn-project/CHANGES.txt |  2 ++
 .../server/resourcemanager/webapp/AppBlock.java | 33 ++--
 .../resourcemanager/webapp/AppsBlock.java   |  6 ++--
 .../resourcemanager/webapp/dao/AppInfo.java |  8 ++---
 4 files changed, 41 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/ce5bf927/hadoop-yarn-project/CHANGES.txt
--
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index e71da2d..c028043 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -310,6 +310,8 @@ Release 2.7.0 - UNRELEASED
 YARN-2799. Cleanup TestLogAggregationService based on the change in 
YARN-90.
 (Zhihai Xu via junping_du)
 
+YARN-3230. Clarify application states on the web UI. (Jian He via wangda)
+
   OPTIMIZATIONS
 
 YARN-2990. FairScheduler's delay-scheduling always waits for node-local 
and 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/ce5bf927/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
index 1856d75..c2b376e 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
@@ -32,8 +32,10 @@ import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.util.StringUtils;
 import org.apache.hadoop.yarn.api.records.ApplicationAccessType;
 import org.apache.hadoop.yarn.api.records.ApplicationId;
+import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
 import org.apache.hadoop.yarn.api.records.QueueACL;
 import org.apache.hadoop.yarn.api.records.Resource;
+import org.apache.hadoop.yarn.api.records.YarnApplicationState;
 import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
 import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager;
 import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
@@ -131,8 +133,9 @@ public class AppBlock extends HtmlBlock {
 ._(Name:, app.getName())
 ._(Application Type:, app.getApplicationType())
 ._(Application Tags:, app.getApplicationTags())
-._(State:, app.getState())
-._(FinalStatus:, app.getFinalStatus())
+._(YarnApplicationState:, clarifyAppState(app.getState()))
+._(FinalStatus reported by AM:,
+  clairfyAppFinalStatus(app.getFinalStatus()))
 ._(Started:, Times.format(app.getStartTime()))
 ._(Elapsed:,
 StringUtils.formatTime(Times.elapsed(app.getStartTime(),
@@ -198,4 +201,30 @@ public class AppBlock extends HtmlBlock {
 table._();
 div._();
   }
+
+  private String clarifyAppState(YarnApplicationState state) {
+String ret = state.toString();
+switch (state) {
+case NEW:
+  return ret + : waiting for application to be initialized;
+case NEW_SAVING:
+  return ret + : waiting for application to be persisted in state-store.;
+case SUBMITTED:
+  return ret + : waiting for application to be accepted by scheduler.;
+case ACCEPTED:
+  return ret + : waiting for AM container to be allocated, launched and
+  +  register with RM.;
+case RUNNING:
+  return ret + : AM has registered with RM and started running.;
+default:
+  return ret;
+}
+  }
+
+  private String clairfyAppFinalStatus(FinalApplicationStatus status) {
+if (status == FinalApplicationStatus.UNDEFINED) {
+  return Application has not completed 

[27/52] [abbrv] hadoop git commit: YARN-3230. Clarify application states on the web UI. (Jian He via wangda)

2015-02-23 Thread zhz
YARN-3230. Clarify application states on the web UI. (Jian He via wangda)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/ce5bf927
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/ce5bf927
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/ce5bf927

Branch: refs/heads/HDFS-7285
Commit: ce5bf927c3d9f212798de1bf8706e5e9def235a1
Parents: c33ae27
Author: Wangda Tan wan...@apache.org
Authored: Fri Feb 20 10:39:28 2015 -0800
Committer: Wangda Tan wan...@apache.org
Committed: Fri Feb 20 10:39:28 2015 -0800

--
 hadoop-yarn-project/CHANGES.txt |  2 ++
 .../server/resourcemanager/webapp/AppBlock.java | 33 ++--
 .../resourcemanager/webapp/AppsBlock.java   |  6 ++--
 .../resourcemanager/webapp/dao/AppInfo.java |  8 ++---
 4 files changed, 41 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/ce5bf927/hadoop-yarn-project/CHANGES.txt
--
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index e71da2d..c028043 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -310,6 +310,8 @@ Release 2.7.0 - UNRELEASED
 YARN-2799. Cleanup TestLogAggregationService based on the change in 
YARN-90.
 (Zhihai Xu via junping_du)
 
+YARN-3230. Clarify application states on the web UI. (Jian He via wangda)
+
   OPTIMIZATIONS
 
 YARN-2990. FairScheduler's delay-scheduling always waits for node-local 
and 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/ce5bf927/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
index 1856d75..c2b376e 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
@@ -32,8 +32,10 @@ import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.util.StringUtils;
 import org.apache.hadoop.yarn.api.records.ApplicationAccessType;
 import org.apache.hadoop.yarn.api.records.ApplicationId;
+import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
 import org.apache.hadoop.yarn.api.records.QueueACL;
 import org.apache.hadoop.yarn.api.records.Resource;
+import org.apache.hadoop.yarn.api.records.YarnApplicationState;
 import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
 import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager;
 import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
@@ -131,8 +133,9 @@ public class AppBlock extends HtmlBlock {
 ._(Name:, app.getName())
 ._(Application Type:, app.getApplicationType())
 ._(Application Tags:, app.getApplicationTags())
-._(State:, app.getState())
-._(FinalStatus:, app.getFinalStatus())
+._(YarnApplicationState:, clarifyAppState(app.getState()))
+._(FinalStatus reported by AM:,
+  clairfyAppFinalStatus(app.getFinalStatus()))
 ._(Started:, Times.format(app.getStartTime()))
 ._(Elapsed:,
 StringUtils.formatTime(Times.elapsed(app.getStartTime(),
@@ -198,4 +201,30 @@ public class AppBlock extends HtmlBlock {
 table._();
 div._();
   }
+
+  private String clarifyAppState(YarnApplicationState state) {
+String ret = state.toString();
+switch (state) {
+case NEW:
+  return ret + : waiting for application to be initialized;
+case NEW_SAVING:
+  return ret + : waiting for application to be persisted in state-store.;
+case SUBMITTED:
+  return ret + : waiting for application to be accepted by scheduler.;
+case ACCEPTED:
+  return ret + : waiting for AM container to be allocated, launched and
+  +  register with RM.;
+case RUNNING:
+  return ret + : AM has registered with RM and started running.;
+default:
+  return ret;
+}
+  }
+
+  private String clairfyAppFinalStatus(FinalApplicationStatus status) {
+if (status == FinalApplicationStatus.UNDEFINED) {
+  return Application has not completed 

hadoop git commit: YARN-3230. Clarify application states on the web UI. (Jian He via wangda)

2015-02-20 Thread wangda
Repository: hadoop
Updated Branches:
  refs/heads/trunk c33ae271c - ce5bf927c


YARN-3230. Clarify application states on the web UI. (Jian He via wangda)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/ce5bf927
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/ce5bf927
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/ce5bf927

Branch: refs/heads/trunk
Commit: ce5bf927c3d9f212798de1bf8706e5e9def235a1
Parents: c33ae27
Author: Wangda Tan wan...@apache.org
Authored: Fri Feb 20 10:39:28 2015 -0800
Committer: Wangda Tan wan...@apache.org
Committed: Fri Feb 20 10:39:28 2015 -0800

--
 hadoop-yarn-project/CHANGES.txt |  2 ++
 .../server/resourcemanager/webapp/AppBlock.java | 33 ++--
 .../resourcemanager/webapp/AppsBlock.java   |  6 ++--
 .../resourcemanager/webapp/dao/AppInfo.java |  8 ++---
 4 files changed, 41 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/ce5bf927/hadoop-yarn-project/CHANGES.txt
--
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index e71da2d..c028043 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -310,6 +310,8 @@ Release 2.7.0 - UNRELEASED
 YARN-2799. Cleanup TestLogAggregationService based on the change in 
YARN-90.
 (Zhihai Xu via junping_du)
 
+YARN-3230. Clarify application states on the web UI. (Jian He via wangda)
+
   OPTIMIZATIONS
 
 YARN-2990. FairScheduler's delay-scheduling always waits for node-local 
and 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/ce5bf927/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
index 1856d75..c2b376e 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
@@ -32,8 +32,10 @@ import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.util.StringUtils;
 import org.apache.hadoop.yarn.api.records.ApplicationAccessType;
 import org.apache.hadoop.yarn.api.records.ApplicationId;
+import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
 import org.apache.hadoop.yarn.api.records.QueueACL;
 import org.apache.hadoop.yarn.api.records.Resource;
+import org.apache.hadoop.yarn.api.records.YarnApplicationState;
 import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
 import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager;
 import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
@@ -131,8 +133,9 @@ public class AppBlock extends HtmlBlock {
 ._(Name:, app.getName())
 ._(Application Type:, app.getApplicationType())
 ._(Application Tags:, app.getApplicationTags())
-._(State:, app.getState())
-._(FinalStatus:, app.getFinalStatus())
+._(YarnApplicationState:, clarifyAppState(app.getState()))
+._(FinalStatus reported by AM:,
+  clairfyAppFinalStatus(app.getFinalStatus()))
 ._(Started:, Times.format(app.getStartTime()))
 ._(Elapsed:,
 StringUtils.formatTime(Times.elapsed(app.getStartTime(),
@@ -198,4 +201,30 @@ public class AppBlock extends HtmlBlock {
 table._();
 div._();
   }
+
+  private String clarifyAppState(YarnApplicationState state) {
+String ret = state.toString();
+switch (state) {
+case NEW:
+  return ret + : waiting for application to be initialized;
+case NEW_SAVING:
+  return ret + : waiting for application to be persisted in state-store.;
+case SUBMITTED:
+  return ret + : waiting for application to be accepted by scheduler.;
+case ACCEPTED:
+  return ret + : waiting for AM container to be allocated, launched and
+  +  register with RM.;
+case RUNNING:
+  return ret + : AM has registered with RM and started running.;
+default:
+  return ret;
+}
+  }
+
+  private String clairfyAppFinalStatus(FinalApplicationStatus status) {
+if (status == 

hadoop git commit: YARN-3230. Clarify application states on the web UI. (Jian He via wangda)

2015-02-20 Thread wangda
Repository: hadoop
Updated Branches:
  refs/heads/branch-2 4a87a61fe - a1963968d


YARN-3230. Clarify application states on the web UI. (Jian He via wangda)

(cherry picked from commit ce5bf927c3d9f212798de1bf8706e5e9def235a1)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/a1963968
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/a1963968
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/a1963968

Branch: refs/heads/branch-2
Commit: a1963968d2a9589fcefaab0d63feeb68c07f4d06
Parents: 4a87a61
Author: Wangda Tan wan...@apache.org
Authored: Fri Feb 20 10:39:28 2015 -0800
Committer: Wangda Tan wan...@apache.org
Committed: Fri Feb 20 10:40:04 2015 -0800

--
 hadoop-yarn-project/CHANGES.txt |  2 ++
 .../server/resourcemanager/webapp/AppBlock.java | 33 ++--
 .../resourcemanager/webapp/AppsBlock.java   |  6 ++--
 .../resourcemanager/webapp/dao/AppInfo.java |  8 ++---
 4 files changed, 41 insertions(+), 8 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/hadoop/blob/a1963968/hadoop-yarn-project/CHANGES.txt
--
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index 235043c..3903631 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -274,6 +274,8 @@ Release 2.7.0 - UNRELEASED
 YARN-2799. Cleanup TestLogAggregationService based on the change in 
YARN-90.
 (Zhihai Xu via junping_du)
 
+YARN-3230. Clarify application states on the web UI. (Jian He via wangda)
+
   OPTIMIZATIONS
 
 YARN-2990. FairScheduler's delay-scheduling always waits for node-local 
and 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/a1963968/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
--
diff --git 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
index 1856d75..c2b376e 100644
--- 
a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
+++ 
b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/AppBlock.java
@@ -32,8 +32,10 @@ import org.apache.hadoop.security.UserGroupInformation;
 import org.apache.hadoop.util.StringUtils;
 import org.apache.hadoop.yarn.api.records.ApplicationAccessType;
 import org.apache.hadoop.yarn.api.records.ApplicationId;
+import org.apache.hadoop.yarn.api.records.FinalApplicationStatus;
 import org.apache.hadoop.yarn.api.records.QueueACL;
 import org.apache.hadoop.yarn.api.records.Resource;
+import org.apache.hadoop.yarn.api.records.YarnApplicationState;
 import org.apache.hadoop.yarn.server.resourcemanager.RMContext;
 import org.apache.hadoop.yarn.server.resourcemanager.ResourceManager;
 import org.apache.hadoop.yarn.server.resourcemanager.rmapp.RMApp;
@@ -131,8 +133,9 @@ public class AppBlock extends HtmlBlock {
 ._(Name:, app.getName())
 ._(Application Type:, app.getApplicationType())
 ._(Application Tags:, app.getApplicationTags())
-._(State:, app.getState())
-._(FinalStatus:, app.getFinalStatus())
+._(YarnApplicationState:, clarifyAppState(app.getState()))
+._(FinalStatus reported by AM:,
+  clairfyAppFinalStatus(app.getFinalStatus()))
 ._(Started:, Times.format(app.getStartTime()))
 ._(Elapsed:,
 StringUtils.formatTime(Times.elapsed(app.getStartTime(),
@@ -198,4 +201,30 @@ public class AppBlock extends HtmlBlock {
 table._();
 div._();
   }
+
+  private String clarifyAppState(YarnApplicationState state) {
+String ret = state.toString();
+switch (state) {
+case NEW:
+  return ret + : waiting for application to be initialized;
+case NEW_SAVING:
+  return ret + : waiting for application to be persisted in state-store.;
+case SUBMITTED:
+  return ret + : waiting for application to be accepted by scheduler.;
+case ACCEPTED:
+  return ret + : waiting for AM container to be allocated, launched and
+  +  register with RM.;
+case RUNNING:
+  return ret + : AM has registered with RM and started running.;
+default:
+  return ret;
+}
+  }
+
+  private String