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 oz...@apache.org on 2015/03/05 11:57:40 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/trunk 5e9b8144d -> 1b6720961
YARN-3249. Add a 'kill application' button to Resource Manager's Web UI. Contributed by Ryu Kobayashi.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/1b672096
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/1b672096
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/1b672096
Branch: refs/heads/trunk
Commit: 1b672096121fef775572b517d4f5721997abbac6
Parents: 5e9b814
Author: Tsuyoshi Ozawa <oz...@apache.org>
Authored: Thu Mar 5 19:55:56 2015 +0900
Committer: Tsuyoshi Ozawa <oz...@apache.org>
Committed: Thu Mar 5 19:55:56 2015 +0900
----------------------------------------------------------------------
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/1b672096/hadoop-yarn-project/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-yarn-project/CHANGES.txt b/hadoop-yarn-project/CHANGES.txt
index 4dd61eb..3ea5501 100644
--- a/hadoop-yarn-project/CHANGES.txt
+++ b/hadoop-yarn-project/CHANGES.txt
@@ -94,6 +94,9 @@ Release 2.7.0 - UNRELEASED
YARN-2994. Document work-preserving RM restart. (Jian He via ozawa)
+ YARN-3249. Add a 'kill application' button to Resource Manager's Web UI.
+ (Ryu Kobayashi via ozawa)
+
IMPROVEMENTS
YARN-3005. [JDK7] Use switch statement for String instead of if-else
http://git-wip-us.apache.org/repos/asf/hadoop/blob/1b672096/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 ff06eea..25b808e 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
@@ -184,6 +184,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/1b672096/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 45df93e..00508b8 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
@@ -37,6 +37,7 @@ import org.apache.hadoop.yarn.api.records.QueueACL;
import org.apache.hadoop.yarn.api.records.Resource;
import org.apache.hadoop.yarn.api.records.ResourceRequest;
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;
@@ -62,12 +63,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
@@ -113,6 +118,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