Repository: hadoop
Updated Branches:
  refs/heads/branch-2.9 77c6439c3 -> 050aa531b


HDFS-13099. RBF: Use the ZooKeeper as the default State Store. Contributed by 
Yiqun Lin.

(cherry picked from commit 543f3abbee79d7ec70353f0cdda6397ee001324e)


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/050aa531
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/050aa531
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/050aa531

Branch: refs/heads/branch-2.9
Commit: 050aa531ba7a419f83a4f48b0dac1ffbbdad6d1b
Parents: 77c6439
Author: Yiqun Lin <yq...@apache.org>
Authored: Fri Feb 9 13:57:42 2018 +0800
Committer: Yiqun Lin <yq...@apache.org>
Committed: Fri Feb 9 14:03:13 2018 +0800

----------------------------------------------------------------------
 .../java/org/apache/hadoop/hdfs/DFSConfigKeys.java |  4 ++--
 .../src/main/resources/hdfs-default.xml            | 10 ++++++++--
 .../src/site/markdown/HDFSRouterFederation.md      |  2 +-
 .../server/federation/RouterConfigBuilder.java     |  6 ++++++
 .../store/FederationStateStoreTestUtils.java       | 17 +++++++++++------
 5 files changed, 28 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/050aa531/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSConfigKeys.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSConfigKeys.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSConfigKeys.java
index e1d5806..dac9e71 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSConfigKeys.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/DFSConfigKeys.java
@@ -33,8 +33,8 @@ import 
org.apache.hadoop.hdfs.server.federation.metrics.FederationRPCPerformance
 import 
org.apache.hadoop.hdfs.server.federation.resolver.ActiveNamenodeResolver;
 import 
org.apache.hadoop.hdfs.server.federation.resolver.MembershipNamenodeResolver;
 import org.apache.hadoop.hdfs.server.federation.store.driver.StateStoreDriver;
-import 
org.apache.hadoop.hdfs.server.federation.store.driver.impl.StateStoreFileImpl;
 import 
org.apache.hadoop.hdfs.server.federation.store.driver.impl.StateStoreSerializerPBImpl;
+import 
org.apache.hadoop.hdfs.server.federation.store.driver.impl.StateStoreZooKeeperImpl;
 import org.apache.hadoop.http.HttpConfig;
 
 /** 
@@ -1115,7 +1115,7 @@ public class DFSConfigKeys extends 
CommonConfigurationKeys {
   public static final String FEDERATION_STORE_DRIVER_CLASS =
       FEDERATION_STORE_PREFIX + "driver.class";
   public static final Class<? extends StateStoreDriver>
-      FEDERATION_STORE_DRIVER_CLASS_DEFAULT = StateStoreFileImpl.class;
+      FEDERATION_STORE_DRIVER_CLASS_DEFAULT = StateStoreZooKeeperImpl.class;
 
   public static final String FEDERATION_STORE_CONNECTION_TEST_MS =
       FEDERATION_STORE_PREFIX + "connection.test";

http://git-wip-us.apache.org/repos/asf/hadoop/blob/050aa531/hadoop-hdfs-project/hadoop-hdfs/src/main/resources/hdfs-default.xml
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/main/resources/hdfs-default.xml 
b/hadoop-hdfs-project/hadoop-hdfs/src/main/resources/hdfs-default.xml
index cb4616e..5bbd853 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/resources/hdfs-default.xml
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/resources/hdfs-default.xml
@@ -4614,9 +4614,15 @@
 
   <property>
     <name>dfs.federation.router.store.driver.class</name>
-    
<value>org.apache.hadoop.hdfs.server.federation.store.driver.impl.StateStoreFileImpl</value>
+    
<value>org.apache.hadoop.hdfs.server.federation.store.driver.impl.StateStoreZooKeeperImpl</value>
     <description>
-      Class to implement the State Store. By default it uses the local disk.
+      Class to implement the State Store. There are three implementation 
classes currently
+      being supported:
+      
org.apache.hadoop.hdfs.server.federation.store.driver.impl.StateStoreFileImpl,
+      
org.apache.hadoop.hdfs.server.federation.store.driver.impl.StateStoreFileSystemImpl
 and
+      
org.apache.hadoop.hdfs.server.federation.store.driver.impl.StateStoreZooKeeperImpl.
+      These implementation classes use the local file, filesystem and 
ZooKeeper as a backend respectively.
+      By default it uses the ZooKeeper as the default State Store.
     </description>
   </property>
 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/050aa531/hadoop-hdfs-project/hadoop-hdfs/src/site/markdown/HDFSRouterFederation.md
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/site/markdown/HDFSRouterFederation.md 
b/hadoop-hdfs-project/hadoop-hdfs/src/site/markdown/HDFSRouterFederation.md
index b1e9ac2..713fa7a 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/site/markdown/HDFSRouterFederation.md
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/site/markdown/HDFSRouterFederation.md
@@ -305,7 +305,7 @@ The connection to the State Store and the internal caching 
at the Router.
 |:---- |:---- |:---- |
 | dfs.federation.router.store.enable | `true` | If `true`, the Router connects 
to the State Store. |
 | dfs.federation.router.store.serializer | `StateStoreSerializerPBImpl` | 
Class to serialize State Store records. |
-| dfs.federation.router.store.driver.class | `StateStoreZKImpl` | Class to 
implement the State Store. |
+| dfs.federation.router.store.driver.class | `StateStoreZooKeeperImpl` | Class 
to implement the State Store. |
 | dfs.federation.router.store.connection.test | 60000 | How often to check for 
the connection to the State Store in milliseconds. |
 | dfs.federation.router.cache.ttl | 60000 | How often to refresh the State 
Store caches in milliseconds. |
 | dfs.federation.router.store.membership.expiration | 300000 | Expiration time 
in milliseconds for a membership record. |

http://git-wip-us.apache.org/repos/asf/hadoop/blob/050aa531/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/RouterConfigBuilder.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/RouterConfigBuilder.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/RouterConfigBuilder.java
index 0d908af..aa7eca2 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/RouterConfigBuilder.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/RouterConfigBuilder.java
@@ -19,6 +19,8 @@ package org.apache.hadoop.hdfs.server.federation;
 
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hdfs.DFSConfigKeys;
+import 
org.apache.hadoop.hdfs.server.federation.store.FederationStateStoreTestUtils;
+import org.apache.hadoop.hdfs.server.federation.store.driver.StateStoreDriver;
 
 /**
  * Constructs a router configuration with individual features enabled/disabled.
@@ -113,6 +115,10 @@ public class RouterConfigBuilder {
   }
 
   public RouterConfigBuilder stateStore() {
+    // reset the State Store driver implementation class for testing
+    conf.setClass(DFSConfigKeys.FEDERATION_STORE_DRIVER_CLASS,
+        FederationStateStoreTestUtils.getTestDriverClass(),
+        StateStoreDriver.class);
     return this.stateStore(true);
   }
 

http://git-wip-us.apache.org/repos/asf/hadoop/blob/050aa531/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/store/FederationStateStoreTestUtils.java
----------------------------------------------------------------------
diff --git 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/store/FederationStateStoreTestUtils.java
 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/store/FederationStateStoreTestUtils.java
index dbb8f3f..def3935 100644
--- 
a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/store/FederationStateStoreTestUtils.java
+++ 
b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/store/FederationStateStoreTestUtils.java
@@ -39,6 +39,7 @@ import org.apache.hadoop.hdfs.HdfsConfiguration;
 import 
org.apache.hadoop.hdfs.server.federation.resolver.FederationNamenodeServiceState;
 import org.apache.hadoop.hdfs.server.federation.store.driver.StateStoreDriver;
 import 
org.apache.hadoop.hdfs.server.federation.store.driver.impl.StateStoreFileBaseImpl;
+import 
org.apache.hadoop.hdfs.server.federation.store.driver.impl.StateStoreFileImpl;
 import org.apache.hadoop.hdfs.server.federation.store.records.BaseRecord;
 import org.apache.hadoop.hdfs.server.federation.store.records.MembershipState;
 import org.apache.hadoop.hdfs.server.federation.store.records.MembershipStats;
@@ -50,17 +51,21 @@ import org.apache.hadoop.util.Time;
  */
 public final class FederationStateStoreTestUtils {
 
+  /** The State Store Driver implementation class for testing .*/
+  private static final Class<? extends StateStoreDriver>
+      FEDERATION_STORE_DRIVER_CLASS_FOR_TEST = StateStoreFileImpl.class;
+
   private FederationStateStoreTestUtils() {
     // Utility Class
   }
 
   /**
-   * Get the default State Store driver implementation.
+   * Get the State Store driver implementation for testing.
    *
-   * @return Class of the default State Store driver implementation.
+   * @return Class of the State Store driver implementation.
    */
-  public static Class<? extends StateStoreDriver> getDefaultDriver() {
-    return DFSConfigKeys.FEDERATION_STORE_DRIVER_CLASS_DEFAULT;
+  public static Class<? extends StateStoreDriver> getTestDriverClass() {
+    return FEDERATION_STORE_DRIVER_CLASS_FOR_TEST;
   }
 
   /**
@@ -69,7 +74,7 @@ public final class FederationStateStoreTestUtils {
    * @return State Store configuration.
    */
   public static Configuration getStateStoreConfiguration() {
-    Class<? extends StateStoreDriver> clazz = getDefaultDriver();
+    Class<? extends StateStoreDriver> clazz = getTestDriverClass();
     return getStateStoreConfiguration(clazz);
   }
 
@@ -146,7 +151,7 @@ public final class FederationStateStoreTestUtils {
    * @throws IOException
    */
   public static void deleteStateStore() throws IOException {
-    Class<? extends StateStoreDriver> driverClass = getDefaultDriver();
+    Class<? extends StateStoreDriver> driverClass = getTestDriverClass();
     deleteStateStore(driverClass);
   }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org
For additional commands, e-mail: common-commits-h...@hadoop.apache.org

Reply via email to