You are viewing a plain text version of this content. The canonical link for it is here.
Posted to hdfs-commits@hadoop.apache.org by el...@apache.org on 2012/04/13 23:31:27 UTC
svn commit: r1325963 - in
/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs: CHANGES.txt
src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImage.java
src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNameEditsConfigs.java
Author: eli
Date: Fri Apr 13 21:31:27 2012
New Revision: 1325963
URL: http://svn.apache.org/viewvc?rev=1325963&view=rev
Log:
HDFS-2799. Trim fs.checkpoint.dir values. Contributed by Amith D K
Modified:
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImage.java
hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNameEditsConfigs.java
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt?rev=1325963&r1=1325962&r2=1325963&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt Fri Apr 13 21:31:27 2012
@@ -509,6 +509,8 @@ Release 2.0.0 - UNRELEASED
HDFS-3256. HDFS considers blocks under-replicated if topology script is
configured with only 1 rack. (atm)
+ HDFS-2799. Trim fs.checkpoint.dir values. (Amith D K via eli)
+
BREAKDOWN OF HDFS-1623 SUBTASKS
HDFS-2179. Add fencing framework and mechanisms for NameNode HA. (todd)
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImage.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImage.java?rev=1325963&r1=1325962&r2=1325963&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImage.java (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/FSImage.java Fri Apr 13 21:31:27 2012
@@ -1076,7 +1076,8 @@ public class FSImage implements Closeabl
*/
static Collection<URI> getCheckpointDirs(Configuration conf,
String defaultValue) {
- Collection<String> dirNames = conf.getStringCollection(DFSConfigKeys.DFS_NAMENODE_CHECKPOINT_DIR_KEY);
+ Collection<String> dirNames = conf.getTrimmedStringCollection(
+ DFSConfigKeys.DFS_NAMENODE_CHECKPOINT_DIR_KEY);
if (dirNames.size() == 0 && defaultValue != null) {
dirNames.add(defaultValue);
}
@@ -1085,8 +1086,8 @@ public class FSImage implements Closeabl
static List<URI> getCheckpointEditsDirs(Configuration conf,
String defaultName) {
- Collection<String> dirNames =
- conf.getStringCollection(DFSConfigKeys.DFS_NAMENODE_CHECKPOINT_EDITS_DIR_KEY);
+ Collection<String> dirNames = conf.getTrimmedStringCollection(
+ DFSConfigKeys.DFS_NAMENODE_CHECKPOINT_EDITS_DIR_KEY);
if (dirNames.size() == 0 && defaultName != null) {
dirNames.add(defaultName);
}
Modified: hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNameEditsConfigs.java
URL: http://svn.apache.org/viewvc/hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNameEditsConfigs.java?rev=1325963&r1=1325962&r2=1325963&view=diff
==============================================================================
--- hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNameEditsConfigs.java (original)
+++ hadoop/common/trunk/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/namenode/TestNameEditsConfigs.java Fri Apr 13 21:31:27 2012
@@ -490,4 +490,46 @@ public class TestNameEditsConfigs {
cluster.shutdown();
}
}
+
+ /**
+ * Test dfs.namenode.checkpoint.dir and dfs.namenode.checkpoint.edits.dir
+ * should tolerate white space between values.
+ */
+ @Test
+ public void testCheckPointDirsAreTrimmed() throws Exception {
+ MiniDFSCluster cluster = null;
+ SecondaryNameNode secondary = null;
+ File checkpointNameDir1 = new File(base_dir, "chkptName1");
+ File checkpointEditsDir1 = new File(base_dir, "chkptEdits1");
+ File checkpointNameDir2 = new File(base_dir, "chkptName2");
+ File checkpointEditsDir2 = new File(base_dir, "chkptEdits2");
+ File nameDir = new File(base_dir, "name1");
+ String whiteSpace = " \n \n ";
+ Configuration conf = new HdfsConfiguration();
+ conf.set(DFSConfigKeys.DFS_NAMENODE_NAME_DIR_KEY, nameDir.getPath());
+ conf.setStrings(DFSConfigKeys.DFS_NAMENODE_CHECKPOINT_DIR_KEY, whiteSpace
+ + checkpointNameDir1.getPath() + whiteSpace, whiteSpace
+ + checkpointNameDir2.getPath() + whiteSpace);
+ conf.setStrings(DFSConfigKeys.DFS_NAMENODE_CHECKPOINT_EDITS_DIR_KEY,
+ whiteSpace + checkpointEditsDir1.getPath() + whiteSpace, whiteSpace
+ + checkpointEditsDir2.getPath() + whiteSpace);
+ cluster = new MiniDFSCluster.Builder(conf).manageNameDfsDirs(false)
+ .numDataNodes(3).build();
+ try {
+ cluster.waitActive();
+ secondary = startSecondaryNameNode(conf);
+ secondary.doCheckpoint();
+ assertTrue(DFSConfigKeys.DFS_NAMENODE_NAME_DIR_KEY + " must be trimmed ",
+ checkpointNameDir1.exists());
+ assertTrue(DFSConfigKeys.DFS_NAMENODE_NAME_DIR_KEY + " must be trimmed ",
+ checkpointNameDir2.exists());
+ assertTrue(DFSConfigKeys.DFS_NAMENODE_CHECKPOINT_EDITS_DIR_KEY
+ + " must be trimmed ", checkpointEditsDir1.exists());
+ assertTrue(DFSConfigKeys.DFS_NAMENODE_CHECKPOINT_EDITS_DIR_KEY
+ + " must be trimmed ", checkpointEditsDir2.exists());
+ } finally {
+ secondary.shutdown();
+ cluster.shutdown();
+ }
+ }
}