diff --git a/hadoop-mapreduce-project/CHANGES.txt b/hadoop-mapreduce-project/CHANGES.txt index 24d6426d920..2ee4e1c5b03 100644 --- a/hadoop-mapreduce-project/CHANGES.txt +++ b/hadoop-mapreduce-project/CHANGES.txt @@ -283,6 +283,10 @@ Release 0.23.3 - UNRELEASED MAPREDUCE-3947. yarn.app.mapreduce.am.resource.mb not documented (Devaraj K via bobby) + MAPREDUCE-4190. Improve web UI for task attempts userlog link (Tom Graves + via bobby) + + Release 0.23.2 - UNRELEASED INCOMPATIBLE CHANGES diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/webapp/TaskPage.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/webapp/TaskPage.java index 1e7917e8120..69e114f25de 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/webapp/TaskPage.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-app/src/main/java/org/apache/hadoop/mapreduce/v2/app/webapp/TaskPage.java @@ -66,7 +66,8 @@ public class TaskPage extends AppView { th(".id", "Attempt"). th(".progress", "Progress"). th(".state", "State"). - th(".node", "node"). + th(".node", "Node"). + th(".logs", "Logs"). th(".tsh", "Started"). th(".tsh", "Finished"). th(".tsh", "Elapsed"). @@ -83,24 +84,28 @@ public class TaskPage extends AppView { long finishTime = ta.getFinishTime(); long elapsed = ta.getElapsedTime(); String diag = ta.getNote() == null ? "" : ta.getNote(); - TD>>> nodeTd = tbody. - tr(). - td(".id", taid). - td(".progress", progress). - td(".state", ta.getState()).td(); + TR>> row = tbody.tr(); + TD>>> nodeTd = row. + td(".id", taid). + td(".progress", progress). + td(".state", ta.getState()).td(); if (nodeHttpAddr == null) { nodeTd._("N/A"); } else { nodeTd. a(".nodelink", url("http://", nodeHttpAddr), nodeHttpAddr); } + nodeTd._(); if (containerId != null) { String containerIdStr = ta.getAssignedContainerIdStr(); - nodeTd._(" "). + row.td(). a(".logslink", url("http://", nodeHttpAddr, "node", "containerlogs", - containerIdStr, app.getJob().getUserName()), "logs"); + containerIdStr, app.getJob().getUserName()), "logs")._(); + } else { + row.td()._("N/A")._(); } - nodeTd._(). + + row. td(".ts", Times.format(startTime)). td(".ts", Times.format(finishTime)). td(".dt", StringUtils.formatTime(elapsed)). diff --git a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/webapp/HsTaskPage.java b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/webapp/HsTaskPage.java index f7a46b69c7d..5e4b701b300 100644 --- a/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/webapp/HsTaskPage.java +++ b/hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-hs/src/main/java/org/apache/hadoop/mapreduce/v2/hs/webapp/HsTaskPage.java @@ -89,7 +89,8 @@ public class HsTaskPage extends HsView { headRow. th(".id", "Attempt"). th(".state", "State"). - th(".node", "node"). + th(".node", "Node"). + th(".logs", "Logs"). th(".tsh", "Start Time"); if(type == TaskType.REDUCE) { @@ -144,10 +145,11 @@ public class HsTaskPage extends HsView { _(taid)._().td(ta.getState().toString()).td().a(".nodelink", "http://"+ nodeHttpAddr, nodeRackName + "/" + nodeHttpAddr); - td._(" ").a(".logslink", - url("logs", nodeIdString, containerIdString, taid, app.getJob() - .getUserName()), "logs"); td._(); + row.td(). + a(".logslink", + url("logs", nodeIdString, containerIdString, taid, app.getJob() + .getUserName()), "logs")._(); row.td(). br().$title(String.valueOf(attemptStartTime))._(). @@ -195,6 +197,8 @@ public class HsTaskPage extends HsView { $name("attempt_state").$value("State")._()._(). th().input("search_init").$type(InputType.text). $name("attempt_node").$value("Node")._()._(). + th().input("search_init").$type(InputType.text). + $name("attempt_node").$value("Logs")._()._(). th().input("search_init").$type(InputType.text). $name("attempt_start_time").$value("Start Time")._()._();