瀏覽代碼

MAPREDUCE-3258. Fixed AM & JobHistory web-ui to display counters properly. Contributed by Siddharth Seth.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1190160 13f79535-47bb-0310-9956-ffa450edef68
Arun Murthy 13 年之前
父節點
當前提交
34e6de8f85

+ 6 - 2
hadoop-mapreduce-project/CHANGES.txt

@@ -1824,11 +1824,15 @@ Release 0.23.0 - Unreleased
     MAPREDUCE-3282. bin/mapred job -list throws exception. (acmurthy via 
     mahadev)
 
-    MAPREDUCE-3186. User jobs are getting hanged if the Resource manager process goes down 
-    and comes up while job is getting executed. (Eric Payne via mahadev)
+    MAPREDUCE-3186. User jobs are getting hanged if the Resource manager
+    process goes down and comes up while job is getting executed. 
+    (Eric Payne via mahadev)
 
     MAPREDUCE-3209. Jenkins reports 160 FindBugs warnings (mahadev)
 
+    MAPREDUCE-3258. Fixed AM & JobHistory web-ui to display counters properly.
+    (Siddharth Seth via acmurthy)
+
 Release 0.22.0 - Unreleased
 
   INCOMPATIBLE CHANGES

+ 9 - 5
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/webapp/CountersBlock.java

@@ -119,11 +119,16 @@ public class CountersBlock extends HtmlBlock {
       for (Counter counter : g.getAllCounters().values()) {
         // Ditto
         TR<TBODY<TABLE<TD<TR<TBODY<TABLE<DIV<Hamlet>>>>>>>> groupRow = group.
-          tr().
-            td().$title(counter.getName()).
+          tr();
+          if (mg == null && rg == null) {
+            groupRow.td().$title(counter.getName())._(counter.getDisplayName()).
+            _();
+          } else {
+            groupRow.td().$title(counter.getName()).
               a(url(urlBase,urlId,g.getName(), 
                   counter.getName()), counter.getDisplayName()).
             _();
+          }
         if (map != null) {
           Counter mc = mg == null ? null : mg.getCounter(counter.getName());
           Counter rc = rg == null ? null : rg.getCounter(counter.getName());
@@ -168,12 +173,11 @@ public class CountersBlock extends HtmlBlock {
     }
     // Get all types of counters
     Map<TaskId, Task> tasks = job.getTasks();
-    total = JobImpl.newCounters();
+    total = job.getCounters();
     map = JobImpl.newCounters();
     reduce = JobImpl.newCounters();
     for (Task t : tasks.values()) {
       Counters counters = t.getCounters();
-      JobImpl.incrAllCounters(total, counters);
       switch (t.getType()) {
         case MAP:     JobImpl.incrAllCounters(map, counters);     break;
         case REDUCE:  JobImpl.incrAllCounters(reduce, counters);  break;
@@ -184,4 +188,4 @@ public class CountersBlock extends HtmlBlock {
   private String fixGroupDisplayName(CharSequence name) {
     return name.toString().replace(".", ".\u200B").replace("$", "\u200B$");
   }
-}
+}

+ 8 - 0
hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/test/java/org/apache/hadoop/mapreduce/v2/hs/webapp/TestHSWebApp.java

@@ -175,6 +175,14 @@ public class TestHSWebApp {
                          new TestAppContext());
   }
   
+  @Test public void testJobCounterView() {
+    LOG.info("JobCounterView");
+    AppContext appContext = new TestAppContext();
+    Map<String, String> params = TestAMWebApp.getJobParams(appContext);
+    WebAppTests.testPage(HsCountersPage.class, AppContext.class,
+                         appContext, params);
+  }
+  
   @Test public void testSingleCounterView() {
     LOG.info("HsSingleCounterPage");
     WebAppTests.testPage(HsSingleCounterPage.class, AppContext.class,