You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by vi...@apache.org on 2015/09/01 23:48:53 UTC
hadoop git commit: YARN-3249. Add a 'kill application' button to
Resource Manager's Web UI. Contributed by Ryu Kobayashi.
Repository: hadoop
Updated Branches:
refs/heads/branch-2.6.1 8b5bdac98 -> 81417f757
YARN-3249. Add a 'kill application' button to Resource Manager's Web UI. Contributed by Ryu Kobayashi.
(cherry picked from commit 1b672096121fef775572b517d4f5721997abbac6)
(cherry picked from commit 6660c2f83b855535217582326746dc76d53fdf61)
(cherry picked from commit 6ea859e435e7cd6bc342f67e1551ccb86fbd976f)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/81417f75
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/81417f75
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/81417f75
Branch: refs/heads/branch-2.6.1
Commit: 81417f757298ae74a290635cdeac935e13ed5628
Parents: 8b5bdac
Author: Tsuyoshi Ozawa <oz...@apache.org>
Authored: Thu Mar 5 19:55:56 2015 +0900
Committer: Vinod Kumar Vavilapalli <vi...@apache.org>
Committed: Tue Sep 1 14:37:21 2015 -0700
----------------------------------------------------------------------
hadoop-yarn-project/CHANGES.txt | 3 ++
.../hadoop/yarn/conf/YarnConfiguration.java | 6 ++++
.../server/resourcemanager/webapp/AppBlock.java | 35 ++++++++++++++++++++
3 files changed, 44 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/81417f75/hadoop-yarn-project/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index cd70bcb..5317b59 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -6,6 +6,9 @@ Release 2.6.1 - UNRELEASED
NEW FEATURES
+ YARN-3249. Add a 'kill application' button to Resource Manager's Web UI.
+ (Ryu Kobayashi via ozawa)
+
IMPROVEMENTS
YARN-3230. Clarify application states on the web UI. (Jian He via wangda)
http://git-wip-us.apache.org/repos/asf/hadoop/blob/81417f75/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java
index 83cbfc5..6d9c0da 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java
@@ -185,6 +185,12 @@ public class YarnConfiguration extends Configuration {
public static final boolean DEFAULT_RM_SCHEDULER_USE_PORT_FOR_NODE_NAME =
false;
+ /** Enable Resource Manager webapp ui actions */
+ public static final String RM_WEBAPP_UI_ACTIONS_ENABLED =
+ RM_PREFIX + "webapp.ui-actions.enabled";
+ public static final boolean DEFAULT_RM_WEBAPP_UI_ACTIONS_ENABLED =
+ true;
+
/** Whether the RM should enable Reservation System */
public static final String RM_RESERVATION_SYSTEM_ENABLE = RM_PREFIX
+ "reservation-system.enable";
http://git-wip-us.apache.org/repos/asf/hadoop/blob/81417f75/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 c2b376e..bae4947 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
@@ -36,6 +36,7 @@ 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.conf.YarnConfiguration;
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;
@@ -60,12 +61,16 @@ public class AppBlock extends HtmlBlock {
private final Configuration conf;
private final ResourceManager rm;
+ private final boolean rmWebAppUIActions;
@Inject
AppBlock(ResourceManager rm, ViewContext ctx, Configuration conf) {
super(ctx);
this.conf = conf;
this.rm = rm;
+ this.rmWebAppUIActions =
+ conf.getBoolean(YarnConfiguration.RM_WEBAPP_UI_ACTIONS_ENABLED,
+ YarnConfiguration.DEFAULT_RM_WEBAPP_UI_ACTIONS_ENABLED);
}
@Override
@@ -110,6 +115,36 @@ public class AppBlock extends HtmlBlock {
setTitle(join("Application ", aid));
+ if (rmWebAppUIActions) {
+ // Application Kill
+ html.div()
+ .button()
+ .$onclick("confirmAction()").b("Kill Application")._()
+ ._();
+
+ StringBuilder script = new StringBuilder();
+ script.append("function confirmAction() {")
+ .append(" b = confirm(\"Are you sure?\");")
+ .append(" if (b == true) {")
+ .append(" $.ajax({")
+ .append(" type: 'PUT',")
+ .append(" url: '/ws/v1/cluster/apps/").append(aid).append("/state',")
+ .append(" contentType: 'application/json',")
+ .append(" data: '{\"state\":\"KILLED\"}',")
+ .append(" dataType: 'json'")
+ .append(" }).done(function(data){")
+ .append(" setTimeout(function(){")
+ .append(" location.href = '/cluster/app/").append(aid).append("';")
+ .append(" }, 1000);")
+ .append(" }).fail(function(data){")
+ .append(" console.log(data);")
+ .append(" });")
+ .append(" }")
+ .append("}");
+
+ html.script().$type("text/javascript")._(script.toString())._();
+ }
+
RMAppMetrics appMerics = rmApp.getRMAppMetrics();
// Get attempt metrics and fields, it is possible currentAttempt of RMApp is