Author: atm
Date: Thu May 3 03:02:14 2012
New Revision: 1333300
URL: http://svn.apache.org/viewvc?rev=1333300&view=rev
Log:
HDFS-3351. NameNode#initializeGenericKeys should always set fs.defaultFS
regardless of whether HA or Federation is enabled. Contributed by Aaron T.
Myers.
Modified:
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSUtil.java
Modified:
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1333300&r1=1333299&r2=1333300&view=diff
==============================================================================
--- hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
(original)
+++ hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
Thu May 3 03:02:14 2012
@@ -465,6 +465,9 @@ Release 2.0.0 - UNRELEASED
HDFS-3330. If GetImageServlet throws an Error or RTE, response should not
have HTTP "OK" status. (todd)
+ HDFS-3351. NameNode#initializeGenericKeys should always set fs.defaultFS
+ regardless of whether HA or Federation is enabled. (atm)
+
BREAKDOWN OF HDFS-1623 SUBTASKS
HDFS-2179. Add fencing framework and mechanisms for NameNode HA. (todd)
Modified:
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java?rev=1333300&r1=1333299&r2=1333300&view=diff
==============================================================================
---
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java
(original)
+++
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/NameNode.java
Thu May 3 03:02:14 2012
@@ -1130,20 +1130,18 @@ public class NameNode {
*/
public static void initializeGenericKeys(Configuration conf,
String nameserviceId, String namenodeId) {
- if ((nameserviceId == null || nameserviceId.isEmpty()) &&
- (namenodeId == null || namenodeId.isEmpty())) {
- return;
- }
-
- if (nameserviceId != null) {
- conf.set(DFS_FEDERATION_NAMESERVICE_ID, nameserviceId);
- }
- if (namenodeId != null) {
- conf.set(DFS_HA_NAMENODE_ID_KEY, namenodeId);
+ if ((nameserviceId != null && !nameserviceId.isEmpty()) ||
+ (namenodeId != null && !namenodeId.isEmpty())) {
+ if (nameserviceId != null) {
+ conf.set(DFS_FEDERATION_NAMESERVICE_ID, nameserviceId);
+ }
+ if (namenodeId != null) {
+ conf.set(DFS_HA_NAMENODE_ID_KEY, namenodeId);
+ }
+
+ DFSUtil.setGenericConf(conf, nameserviceId, namenodeId,
+ NAMESERVICE_SPECIFIC_KEYS);
}
-
- DFSUtil.setGenericConf(conf, nameserviceId, namenodeId,
- NAMESERVICE_SPECIFIC_KEYS);
if (conf.get(DFS_NAMENODE_RPC_ADDRESS_KEY) != null) {
URI defaultUri = URI.create(HdfsConstants.HDFS_URI_SCHEME + "://"
+ conf.get(DFS_NAMENODE_RPC_ADDRESS_KEY));
Modified:
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSUtil.java
URL:
http://svn.apache.org/viewvc/hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSUtil.java?rev=1333300&r1=1333299&r2=1333300&view=diff
==============================================================================
---
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSUtil.java
(original)
+++
hadoop/common/branches/branch-2/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/TestDFSUtil.java
Thu May 3 03:02:14 2012
@@ -320,6 +320,25 @@ public class TestDFSUtil {
}
/**
+ * Ensure that fs.defaultFS is set in the configuration even if neither HA
nor
+ * Federation is enabled.
+ *
+ * Regression test for HDFS-3351.
+ */
+ @Test
+ public void testConfModificationNoFederationOrHa() {
+ final HdfsConfiguration conf = new HdfsConfiguration();
+ String nsId = null;
+ String nnId = null;
+
+ conf.set(DFS_NAMENODE_RPC_ADDRESS_KEY, "localhost:1234");
+
+ assertFalse("hdfs://localhost:1234".equals(conf.get(FS_DEFAULT_NAME_KEY)));
+ NameNode.initializeGenericKeys(conf, nsId, nnId);
+ assertEquals("hdfs://localhost:1234", conf.get(FS_DEFAULT_NAME_KEY));
+ }
+
+ /**
* Regression test for HDFS-2934.
*/
@Test