You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by te...@apache.org on 2015/09/19 19:13:27 UTC

hbase git commit: HBASE-14280 Bulk Upload from HA cluster to remote HA hbase cluster fails (Ankit Singhal)

Repository: hbase
Updated Branches:
  refs/heads/master 1545e1ed8 -> a7afc132e


HBASE-14280 Bulk Upload from HA cluster to remote HA hbase cluster fails (Ankit Singhal)


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

Branch: refs/heads/master
Commit: a7afc132e2db7ebbb571b43ae17161bff40b59c5
Parents: 1545e1e
Author: tedyu <yu...@gmail.com>
Authored: Sat Sep 19 10:13:00 2015 -0700
Committer: tedyu <yu...@gmail.com>
Committed: Sat Sep 19 10:13:00 2015 -0700

----------------------------------------------------------------------
 .../apache/hadoop/hbase/util/FSHDFSUtils.java   | 25 ++++++++++++++++++--
 1 file changed, 23 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hbase/blob/a7afc132/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSHDFSUtils.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSHDFSUtils.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSHDFSUtils.java
index 1360fb2..bdc2534 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSHDFSUtils.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/util/FSHDFSUtils.java
@@ -27,6 +27,7 @@ import java.net.URI;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
+import java.util.Collection;
 
 import com.google.common.collect.Sets;
 import org.apache.commons.logging.Log;
@@ -66,8 +67,17 @@ public class FSHDFSUtils extends FSUtils {
           dfsUtilClazz = Class.forName("org.apache.hadoop.hdfs.DFSUtil");
         }
         if (getNNAddressesMethod == null) {
-          getNNAddressesMethod =
-                  dfsUtilClazz.getMethod("getNNServiceRpcAddresses", Configuration.class);
+          try {
+            // getNNServiceRpcAddressesForCluster is available only in version
+            // equal to or later than Hadoop 2.6
+            getNNAddressesMethod =
+                dfsUtilClazz.getMethod("getNNServiceRpcAddressesForCluster", Configuration.class);
+          } catch (NoSuchMethodError e) {
+            // If hadoop version is older than hadoop 2.6
+            getNNAddressesMethod =
+                dfsUtilClazz.getMethod("getNNServiceRpcAddresses", Configuration.class);
+          }
+
         }
 
         Map<String, Map<String, InetSocketAddress>> addressMap =
@@ -115,6 +125,17 @@ public class FSHDFSUtils extends FSUtils {
     if (srcServiceName.equals(desServiceName)) {
       return true;
     }
+    if (srcServiceName.startsWith("ha-hdfs") && desServiceName.startsWith("ha-hdfs")) {
+      Collection<String> internalNameServices =
+          conf.getTrimmedStringCollection("dfs.internal.nameservices");
+      if (!internalNameServices.isEmpty()) {
+        if (internalNameServices.contains(srcServiceName.split(":")[1])) {
+          return true;
+        } else {
+          return false;
+        }
+      }
+    }
     if (srcFs instanceof DistributedFileSystem && desFs instanceof DistributedFileSystem) {
       //If one serviceName is an HA format while the other is a non-HA format,
       // maybe they refer to the same FileSystem.