From 9a9e5311383629e3cc5ece3521c777fd6f6723fa Mon Sep 17 00:00:00 2001 From: "tanu.ajmera" Date: Thu, 6 Aug 2020 19:15:16 +0530 Subject: [PATCH] YARN-10389. Option to override RMWebServices with custon WebService class --- .../org/apache/hadoop/yarn/conf/YarnConfiguration.java | 3 +++ .../src/main/resources/yarn-default.xml | 8 ++++++++ .../yarn/server/resourcemanager/webapp/RMWebApp.java | 7 ++++++- 3 files changed, 17 insertions(+), 1 deletion(-) 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 19ce6221b01..83b27805cca 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 @@ -2406,6 +2406,9 @@ public static boolean isAclEnabled(Configuration conf) { public static final String YARN_HTTP_WEBAPP_CUSTOM_UNWRAPPED_DAO_CLASSES = "yarn.http.rmwebapp.custom.unwrapped.dao.classes"; + public static final String YARN_HTTP_WEBAPP_CUSTOM_WEBSERVICE_CLASS = + "yarn.htpp.rmwebapp.custom.webservice.class"; + /** * Whether or not users are allowed to request that Docker containers honor * the debug deletion delay. This is useful for troubleshooting Docker diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml index 2208b00d8a3..7ccc7e24dc0 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml @@ -3376,6 +3376,14 @@ + + + Used to specify custom WebServices class to bind with RMWebApp. + + yarn.htpp.rmwebapp.custom.webservice.class + + + The Node Label script to run. Script output Line starting with "NODE_PARTITION:" will be considered as Node Label Partition. In case of 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/RMWebApp.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebApp.java index 5075d250563..62c8cea401a 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebApp.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebApp.java @@ -22,6 +22,7 @@ import java.net.InetSocketAddress; +import org.apache.hadoop.conf.Configuration; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.apache.hadoop.ha.HAServiceProtocol.HAServiceState; @@ -52,7 +53,11 @@ public RMWebApp(ResourceManager rm) { @Override public void setup() { bind(JAXBContextResolver.class); - bind(RMWebServices.class); + Configuration conf = rm.getConfig(); + Class webServices = conf.getClass( + YarnConfiguration.YARN_HTTP_WEBAPP_CUSTOM_WEBSERVICE_CLASS, + RMWebServices.class); + bind(webServices); bind(GenericExceptionHandler.class); bind(RMWebApp.class).toInstance(this); bindExternalClasses(); -- 2.25.0