Return-Path: X-Original-To: apmail-hbase-commits-archive@www.apache.org Delivered-To: apmail-hbase-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id A0D7317293 for ; Sat, 19 Sep 2015 17:57:14 +0000 (UTC) Received: (qmail 12260 invoked by uid 500); 19 Sep 2015 17:57:14 -0000 Delivered-To: apmail-hbase-commits-archive@hbase.apache.org Received: (qmail 12219 invoked by uid 500); 19 Sep 2015 17:57:14 -0000 Mailing-List: contact commits-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list commits@hbase.apache.org Received: (qmail 12210 invoked by uid 99); 19 Sep 2015 17:57:14 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 19 Sep 2015 17:57:14 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 3CC2DDFFA9; Sat, 19 Sep 2015 17:57:14 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: tedyu@apache.org To: commits@hbase.apache.org Message-Id: <5bd854ee9c0d425d9c2217ac224da5a5@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: hbase git commit: HBASE-14280 Bulk Upload from HA cluster to remote HA hbase cluster fails (Ankit Singhal) Date: Sat, 19 Sep 2015 17:57:14 +0000 (UTC) Repository: hbase Updated Branches: refs/heads/branch-1.1 911c4342a -> 36200f1ea 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/36200f1e Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/36200f1e Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/36200f1e Branch: refs/heads/branch-1.1 Commit: 36200f1ea9ef2f02d7158e49c0f8c1e2ea290b9a Parents: 911c434 Author: tedyu Authored: Sat Sep 19 10:56:54 2015 -0700 Committer: tedyu Committed: Sat Sep 19 10:56:54 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/36200f1e/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 0fffcc6..099bdc0 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> 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 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.