Browse Source

Revert "YARN-7537 [Atsv2] load hbase configuration from filesystem rather than URL. Contributed by Rohith Sharma"

This reverts commit 41e10161b6227b994079c603e9a0a350f0d055ea.
Rohith Sharma K S 7 years ago
parent
commit
f036609cea

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

@@ -2426,7 +2426,7 @@
   </property>
   </property>
 
 
   <property>
   <property>
-    <description> Optional FS path to an hbase-site.xml configuration file to be
+    <description> Optional URL to an hbase-site.xml configuration file to be
     used to connect to the timeline-service hbase cluster. If empty or not
     used to connect to the timeline-service hbase cluster. If empty or not
     specified, then the HBase configuration will be loaded from the classpath.
     specified, then the HBase configuration will be loaded from the classpath.
     When specified the values in the specified configuration file will override
     When specified the values in the specified configuration file will override

+ 12 - 28
hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-timelineservice-hbase/src/main/java/org/apache/hadoop/yarn/server/timelineservice/storage/common/HBaseTimelineStorageUtils.java

@@ -18,14 +18,13 @@
 package org.apache.hadoop.yarn.server.timelineservice.storage.common;
 package org.apache.hadoop.yarn.server.timelineservice.storage.common;
 
 
 import java.io.IOException;
 import java.io.IOException;
+import java.net.MalformedURLException;
+import java.net.URL;
 import java.util.Arrays;
 import java.util.Arrays;
 import java.util.List;
 import java.util.List;
 import java.util.Map;
 import java.util.Map;
 
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.conf.Configuration;
-import org.apache.hadoop.fs.FSDataInputStream;
-import org.apache.hadoop.fs.FileSystem;
-import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.Cell;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.CellUtil;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HBaseConfiguration;
@@ -270,43 +269,28 @@ public final class HBaseTimelineStorageUtils {
    * @return a configuration with the HBase configuration from the classpath,
    * @return a configuration with the HBase configuration from the classpath,
    *         optionally overwritten by the timeline service configuration URL if
    *         optionally overwritten by the timeline service configuration URL if
    *         specified.
    *         specified.
-   * @throws IOException if a timeline service HBase configuration path
-   *           is specified but unable to read it.
+   * @throws MalformedURLException if a timeline service HBase configuration URL
+   *           is specified but is a malformed URL.
    */
    */
   public static Configuration getTimelineServiceHBaseConf(Configuration conf)
   public static Configuration getTimelineServiceHBaseConf(Configuration conf)
-      throws IOException {
+      throws MalformedURLException {
     if (conf == null) {
     if (conf == null) {
       throw new NullPointerException();
       throw new NullPointerException();
     }
     }
 
 
     Configuration hbaseConf;
     Configuration hbaseConf;
-    String timelineServiceHBaseConfFilePath =
+    String timelineServiceHBaseConfFileURL =
         conf.get(YarnConfiguration.TIMELINE_SERVICE_HBASE_CONFIGURATION_FILE);
         conf.get(YarnConfiguration.TIMELINE_SERVICE_HBASE_CONFIGURATION_FILE);
-    if (timelineServiceHBaseConfFilePath != null
-        && timelineServiceHBaseConfFilePath.length() > 0) {
+    if (timelineServiceHBaseConfFileURL != null
+        && timelineServiceHBaseConfFileURL.length() > 0) {
       LOG.info("Using hbase configuration at " +
       LOG.info("Using hbase configuration at " +
-          timelineServiceHBaseConfFilePath);
+          timelineServiceHBaseConfFileURL);
       // create a clone so that we don't mess with out input one
       // create a clone so that we don't mess with out input one
       hbaseConf = new Configuration(conf);
       hbaseConf = new Configuration(conf);
       Configuration plainHBaseConf = new Configuration(false);
       Configuration plainHBaseConf = new Configuration(false);
-      FileSystem fs = null;
-      FSDataInputStream in = null;
-      try {
-        Path hbaseConfigPath = new Path(timelineServiceHBaseConfFilePath);
-        fs = FileSystem.newInstance(conf);
-        in = fs.open(hbaseConfigPath);
-        plainHBaseConf.addResource(in);
-        HBaseConfiguration.merge(hbaseConf, plainHBaseConf);
-      } catch (IOException e) {
-        throw e;
-      } finally {
-        if (in != null) {
-          in.close();
-        }
-        if (fs != null) {
-          fs.close();
-        }
-      }
+      URL hbaseSiteXML = new URL(timelineServiceHBaseConfFileURL);
+      plainHBaseConf.addResource(hbaseSiteXML);
+      HBaseConfiguration.merge(hbaseConf, plainHBaseConf);
     } else {
     } else {
       // default to what is on the classpath
       // default to what is on the classpath
       hbaseConf = HBaseConfiguration.create(conf);
       hbaseConf = HBaseConfiguration.create(conf);