You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by vi...@apache.org on 2016/02/02 08:28:35 UTC
[2/3] hadoop git commit: HDFS-9718. HAUtil#getConfForOtherNodes
should unset independent generic keys before initialize (Contributed by DENG
FEI)
HDFS-9718. HAUtil#getConfForOtherNodes should unset independent generic keys before initialize (Contributed by DENG FEI)
(cherry picked from commit 4d7055e0c8d1936d6c87cec14dbbfdff77b837f3)
Conflicts:
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/HAUtil.java
hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestHAConfiguration.java
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/80dd039b
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/80dd039b
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/80dd039b
Branch: refs/heads/branch-2
Commit: 80dd039b6e78d284d09522e61d7ea1fee9425345
Parents: 43131af
Author: Vinayakumar B <vi...@apache.org>
Authored: Tue Feb 2 12:51:35 2016 +0530
Committer: Vinayakumar B <vi...@apache.org>
Committed: Tue Feb 2 12:56:31 2016 +0530
----------------------------------------------------------------------
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++
.../java/org/apache/hadoop/hdfs/HAUtil.java | 26 ++++++++++++++++++++
.../server/namenode/ha/TestHAConfiguration.java | 22 +++++++++++++++++
3 files changed, 51 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/80dd039b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
index 2c6688a..f334a32 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -1777,6 +1777,9 @@ Release 2.8.0 - UNRELEASED
HDFS-9701. DN may deadlock when hot-swapping under load. (Xiao Chen via lei)
+ HDFS-9718. HAUtil#getConfForOtherNodes should unset independent generic keys
+ before initialize (DENG FEI via vinayakumarb)
+
Release 2.7.3 - UNRELEASED
INCOMPATIBLE CHANGES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/80dd039b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/HAUtil.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/HAUtil.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/HAUtil.java
index 7800596..9185395 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/HAUtil.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/HAUtil.java
@@ -18,7 +18,16 @@
package org.apache.hadoop.hdfs;
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_HA_NAMENODE_ID_KEY;
+import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_HTTPS_ADDRESS_KEY;
+import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_HTTPS_BIND_HOST_KEY;
+import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_HTTP_ADDRESS_KEY;
+import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_HTTP_BIND_HOST_KEY;
+import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_LIFELINE_RPC_ADDRESS_KEY;
+import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_LIFELINE_RPC_BIND_HOST_KEY;
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_RPC_ADDRESS_KEY;
+import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_RPC_BIND_HOST_KEY;
+import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY;
+import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_SERVICE_RPC_BIND_HOST_KEY;
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_SHARED_EDITS_DIR_KEY;
import java.io.IOException;
@@ -64,6 +73,19 @@ public class HAUtil {
private static final DelegationTokenSelector tokenSelector =
new DelegationTokenSelector();
+ private static final String[] HA_SPECIAL_INDEPENDENT_KEYS = new String []{
+ DFS_NAMENODE_RPC_ADDRESS_KEY,
+ DFS_NAMENODE_RPC_BIND_HOST_KEY,
+ DFS_NAMENODE_LIFELINE_RPC_ADDRESS_KEY,
+ DFS_NAMENODE_LIFELINE_RPC_BIND_HOST_KEY,
+ DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY,
+ DFS_NAMENODE_SERVICE_RPC_BIND_HOST_KEY,
+ DFS_NAMENODE_HTTP_ADDRESS_KEY,
+ DFS_NAMENODE_HTTPS_ADDRESS_KEY,
+ DFS_NAMENODE_HTTP_BIND_HOST_KEY,
+ DFS_NAMENODE_HTTPS_BIND_HOST_KEY
+ };
+
private HAUtil() { /* Hidden constructor */ }
/**
@@ -188,6 +210,10 @@ public class HAUtil {
// Look up the address of the active NN.
Configuration confForOtherNode = new Configuration(myConf);
+ // unset independent properties
+ for (String idpKey : HA_SPECIAL_INDEPENDENT_KEYS) {
+ confForOtherNode.unset(idpKey);
+ }
NameNode.initializeGenericKeys(confForOtherNode, nsId, otherNn);
return confForOtherNode;
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/80dd039b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestHAConfiguration.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestHAConfiguration.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestHAConfiguration.java
index c4a2988..90ccd86 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestHAConfiguration.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/ha/TestHAConfiguration.java
@@ -20,6 +20,8 @@ package org.apache.hadoop.hdfs.server.namenode.ha;
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_EDITS_DIR_KEY;
import static org.apache.hadoop.hdfs.DFSConfigKeys.DFS_NAMENODE_SHARED_EDITS_DIR_KEY;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail;
import java.io.IOException;
@@ -30,6 +32,7 @@ import java.util.Collection;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hdfs.DFSConfigKeys;
import org.apache.hadoop.hdfs.DFSUtil;
+import org.apache.hadoop.hdfs.HAUtil;
import org.apache.hadoop.hdfs.server.namenode.FSNamesystem;
import org.apache.hadoop.hdfs.server.namenode.NameNode;
import org.apache.hadoop.hdfs.server.namenode.SecondaryNameNode;
@@ -127,4 +130,23 @@ public class TestHAConfiguration {
"Cannot use SecondaryNameNode in an HA cluster", ioe);
}
}
+
+ @Test
+ public void testGetOtherNNGenericConf() throws IOException {
+ String nsId = "ns1";
+ String host1 = "1.2.3.1";
+ String host2 = "1.2.3.2";
+ Configuration conf = getHAConf(nsId, host1, host2);
+ conf.set(DFSUtil.addKeySuffixes(
+ DFSConfigKeys.DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY, nsId, "nn1"), host1
+ + ":54321");
+ conf.set(DFSConfigKeys.DFS_NAMESERVICE_ID, "ns1");
+ NameNode.initializeGenericKeys(conf, "ns1", "nn1");
+
+ Configuration nn2Conf = HAUtil.getConfForOtherNode(conf);
+ assertEquals(nn2Conf.get(DFSConfigKeys.DFS_HA_NAMENODE_ID_KEY), "nn2");
+ assertTrue(!conf.get(DFSConfigKeys.DFS_NAMENODE_RPC_ADDRESS_KEY).equals(
+ nn2Conf.get(DFSConfigKeys.DFS_NAMENODE_RPC_ADDRESS_KEY)));
+ assertNull(nn2Conf.get(DFSConfigKeys.DFS_NAMENODE_SERVICE_RPC_ADDRESS_KEY));
+ }
}