Browse Source

Revert "YARN-6626. Embed REST API service into RM. Contributed by Eric Yang"

This reverts commit 63d1084e9781e0fee876916190b69f6242dd00e4.
Jian He 7 years ago
parent
commit
673c0db43c

+ 0 - 2
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-api/src/main/java/org/apache/hadoop/yarn/conf/YarnConfiguration.java

@@ -336,8 +336,6 @@ public class YarnConfiguration extends Configuration {
 
 
   public static final String YARN_WEBAPP_UI2_WARFILE_PATH = "yarn."
   public static final String YARN_WEBAPP_UI2_WARFILE_PATH = "yarn."
       + "webapp.ui2.war-file-path";
       + "webapp.ui2.war-file-path";
-  public static final String YARN_API_SERVICES_ENABLE = "yarn."
-      + "webapp.api-service.enable";
 
 
   public static final String RM_RESOURCE_TRACKER_ADDRESS =
   public static final String RM_RESOURCE_TRACKER_ADDRESS =
     RM_PREFIX + "resource-tracker.address";
     RM_PREFIX + "resource-tracker.address";

+ 0 - 7
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services-api/src/main/java/org/apache/hadoop/yarn/service/webapp/ApiServer.java

@@ -17,7 +17,6 @@
 
 
 package org.apache.hadoop.yarn.service.webapp;
 package org.apache.hadoop.yarn.service.webapp;
 
 
-import com.google.inject.Inject;
 import com.google.inject.Singleton;
 import com.google.inject.Singleton;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.util.VersionInfo;
 import org.apache.hadoop.util.VersionInfo;
@@ -58,12 +57,6 @@ import static org.apache.hadoop.yarn.service.conf.RestApiConstants.*;
 @Singleton
 @Singleton
 @Path(CONTEXT_ROOT)
 @Path(CONTEXT_ROOT)
 public class ApiServer {
 public class ApiServer {
-
-  @Inject
-  public ApiServer(Configuration conf) {
-    super();
-  }
-
   private static final Logger LOG =
   private static final Logger LOG =
       LoggerFactory.getLogger(ApiServer.class);
       LoggerFactory.getLogger(ApiServer.class);
   private static Configuration YARN_CONFIG = new YarnConfiguration();
   private static Configuration YARN_CONFIG = new YarnConfiguration();

+ 6 - 0
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/pom.xml

@@ -244,6 +244,12 @@
       <scope>test</scope>
       <scope>test</scope>
     </dependency>
     </dependency>
 
 
+    <dependency>
+      <groupId>org.apache.hadoop</groupId>
+      <artifactId>hadoop-yarn-server-resourcemanager</artifactId>
+      <scope>test</scope>
+    </dependency>
+
     <dependency>
     <dependency>
       <groupId>org.apache.curator</groupId>
       <groupId>org.apache.curator</groupId>
       <artifactId>curator-test</artifactId>
       <artifactId>curator-test</artifactId>

+ 0 - 8
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/api/records/Artifact.java

@@ -23,9 +23,6 @@ import io.swagger.annotations.ApiModelProperty;
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.Objects;
 import java.util.Objects;
 
 
-import javax.xml.bind.annotation.XmlEnum;
-import javax.xml.bind.annotation.XmlType;
-
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonInclude;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonValue;
 import com.fasterxml.jackson.annotation.JsonValue;
@@ -45,11 +42,6 @@ public class Artifact implements Serializable {
 
 
   private String id = null;
   private String id = null;
 
 
-  /**
-   * Artifact Type.  DOCKER, TARBALL or SERVICE
-   **/
-  @XmlType(name = "artifact_type")
-  @XmlEnum
   public enum TypeEnum {
   public enum TypeEnum {
     DOCKER("DOCKER"), TARBALL("TARBALL"), SERVICE("SERVICE");
     DOCKER("DOCKER"), TARBALL("TARBALL"), SERVICE("SERVICE");
 
 

+ 0 - 8
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/api/records/ConfigFile.java

@@ -26,10 +26,7 @@ import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.classification.InterfaceStability;
 import org.apache.hadoop.classification.InterfaceStability;
 
 
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlEnum;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
-
 import java.io.Serializable;
 import java.io.Serializable;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.Map;
 import java.util.Map;
@@ -48,11 +45,6 @@ import java.util.Objects;
 public class ConfigFile implements Serializable {
 public class ConfigFile implements Serializable {
   private static final long serialVersionUID = -7009402089417704612L;
   private static final long serialVersionUID = -7009402089417704612L;
 
 
-  /**
-   * Config Type.  XML, JSON, YAML, TEMPLATE, ENV and HADOOP_XML are supported.
-   **/
-  @XmlType(name = "config_type")
-  @XmlEnum
   public enum TypeEnum {
   public enum TypeEnum {
     XML("XML"), PROPERTIES("PROPERTIES"), JSON("JSON"), YAML("YAML"), TEMPLATE(
     XML("XML"), PROPERTIES("PROPERTIES"), JSON("JSON"), YAML("YAML"), TEMPLATE(
         "TEMPLATE"), ENV("ENV"), HADOOP_XML("HADOOP_XML"),;
         "TEMPLATE"), ENV("ENV"), HADOOP_XML("HADOOP_XML"),;

+ 0 - 8
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-applications/hadoop-yarn-services/hadoop-yarn-services-core/src/main/java/org/apache/hadoop/yarn/service/api/records/ReadinessCheck.java

@@ -25,9 +25,6 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Map;
 import java.util.Objects;
 import java.util.Objects;
 
 
-import javax.xml.bind.annotation.XmlEnum;
-import javax.xml.bind.annotation.XmlType;
-
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.fasterxml.jackson.annotation.JsonValue;
 import com.fasterxml.jackson.annotation.JsonValue;
 import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.classification.InterfaceAudience;
@@ -46,11 +43,6 @@ import org.apache.hadoop.classification.InterfaceStability;
 public class ReadinessCheck implements Serializable {
 public class ReadinessCheck implements Serializable {
   private static final long serialVersionUID = -3836839816887186801L;
   private static final long serialVersionUID = -3836839816887186801L;
 
 
-  /**
-   * Type. HTTP and PORT
-   **/
-  @XmlType(name = "type")
-  @XmlEnum
   public enum TypeEnum {
   public enum TypeEnum {
     HTTP("HTTP"),
     HTTP("HTTP"),
     PORT("PORT");
     PORT("PORT");

+ 0 - 8
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/resources/yarn-default.xml

@@ -211,14 +211,6 @@
     <value></value>
     <value></value>
   </property>
   </property>
 
 
-  <property>
-    <description>
-      Enable services rest api on ResourceManager.
-    </description>
-    <name>yarn.webapp.api-service.enable</name>
-    <value>false</value>
-  </property>
-
   <property>
   <property>
     <name>yarn.resourcemanager.resource-tracker.address</name>
     <name>yarn.resourcemanager.resource-tracker.address</name>
     <value>${yarn.resourcemanager.hostname}:8031</value>
     <value>${yarn.resourcemanager.hostname}:8031</value>

+ 0 - 19
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,8 +22,6 @@ import static org.apache.hadoop.yarn.util.StringHelper.pajoin;
 
 
 import java.net.InetSocketAddress;
 import java.net.InetSocketAddress;
 
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.ha.HAServiceProtocol.HAServiceState;
 import org.apache.hadoop.ha.HAServiceProtocol.HAServiceState;
 import org.apache.hadoop.yarn.conf.YarnConfiguration;
 import org.apache.hadoop.yarn.conf.YarnConfiguration;
 import org.apache.hadoop.yarn.util.RMHAUtils;
 import org.apache.hadoop.yarn.util.RMHAUtils;
@@ -40,12 +38,8 @@ import com.sun.jersey.guice.spi.container.servlet.GuiceContainer;
  */
  */
 public class RMWebApp extends WebApp implements YarnWebParams {
 public class RMWebApp extends WebApp implements YarnWebParams {
 
 
-  private static final Log LOG =
-      LogFactory.getLog(RMWebApp.class.getName());
   private final ResourceManager rm;
   private final ResourceManager rm;
   private boolean standby = false;
   private boolean standby = false;
-  private final static String APISERVER =
-      "org.apache.hadoop.yarn.service.webapp.ApiServer";
 
 
   public RMWebApp(ResourceManager rm) {
   public RMWebApp(ResourceManager rm) {
     this.rm = rm;
     this.rm = rm;
@@ -59,19 +53,6 @@ public class RMWebApp extends WebApp implements YarnWebParams {
     bind(RMWebApp.class).toInstance(this);
     bind(RMWebApp.class).toInstance(this);
 
 
     if (rm != null) {
     if (rm != null) {
-      boolean enableServiceApi = rm.getConfig()
-          .getBoolean(YarnConfiguration.YARN_API_SERVICES_ENABLE, false);
-      if (enableServiceApi) {
-        try {
-          // Use reflection here to load ApiServer class,
-          // this is done to avoid creating cyclic dependency
-          // between maven projects.
-          Class<?> apiServer = Class.forName(APISERVER);
-          bind(apiServer);
-        } catch (ClassNotFoundException e) {
-          LOG.warn("ApiServer REST API is not activated.");
-        }
-      }
       bind(ResourceManager.class).toInstance(rm);
       bind(ResourceManager.class).toInstance(rm);
     }
     }
     route("/", RmController.class);
     route("/", RmController.class);

+ 5 - 29
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-site/src/site/markdown/yarn-service/QuickStart.md

@@ -101,41 +101,17 @@ yarn service destroy ${SERVICE_NAME}
 ```
 ```
 
 
 ## Manage services on YARN via REST API
 ## Manage services on YARN via REST API
-
-YARN API Server REST API can be activated in two modes: embedded or standalone.
-
-### Start Embedded API-Server as part of ResourceManager
-For running inside ResourceManager, add this property to `yarn-site.xml` and restart ResourceManager.
-
-```
-  <property>
-    <description>
-      Enable services rest api on ResourceManager.
-    </description>
-    <name>yarn.webapp.api-service.enable</name>
-    <value>true</value>
-  </property>
-```
-
-Services can be deployed on YARN through the ResourceManager web endpoint.
-
-### Start Standalone API-Server for deploying services on YARN
-API server is the service that sits in front of YARN ResourceManager and lets users submit their service specs via HTTP.
+Below steps walk you through deploying services on YARN via REST API.
+ Refer to [API doc](YarnServiceAPI.md)  for the detailed API specificatiosn.
+### Start API-Server for deploying services on YARN
+API server is the service that sits in front of YARN ResourceManager and lets users submit their API specs via HTTP.
 ```
 ```
  yarn --daemon start apiserver
  yarn --daemon start apiserver
  ```
  ```
 The above command starts the API Server on the localhost at port 9191 by default. 
 The above command starts the API Server on the localhost at port 9191 by default. 
 
 
-Refer to [API doc](YarnServiceAPI.md)  for the detailed API specificatiosn.
-
 ### Deploy a service
 ### Deploy a service
-
-POST the aforementioned example service definition to the ResourceManager api-server endpoint:
-```
-POST  http://localhost:8088/ws/v1/services
-```
-
-Or standalone API server:
+POST the aforementioned example service definition to the api-server endpoint: 
 ```
 ```
 POST  http://localhost:9191/ws/v1/services
 POST  http://localhost:9191/ws/v1/services
 ```
 ```