|
@@ -141,6 +141,20 @@ public class TestEditLog extends TestCase {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Construct FSEditLog with default configuration, taking editDirs from NNStorage
|
|
|
+ *
|
|
|
+ * @param storage Storage object used by namenode
|
|
|
+ */
|
|
|
+ private static FSEditLog getFSEditLog(NNStorage storage) throws IOException {
|
|
|
+ Configuration conf = new Configuration();
|
|
|
+ // Make sure the edits dirs are set in the provided configuration object.
|
|
|
+ conf.set(DFSConfigKeys.DFS_NAMENODE_EDITS_DIR_KEY,
|
|
|
+ StringUtils.join(",", storage.getEditsDirectories()));
|
|
|
+ FSEditLog log = new FSEditLog(conf, storage, FSNamesystem.getNamespaceEditsDirs(conf));
|
|
|
+ return log;
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* Test case for an empty edit log from a prior version of Hadoop.
|
|
@@ -863,7 +877,7 @@ public class TestEditLog extends TestCase {
|
|
|
storage = mockStorageWithEdits(
|
|
|
"[1,100]|[101,200]|[201,]",
|
|
|
"[1,100]|[101,200]|[201,]");
|
|
|
- log = new FSEditLog(storage);
|
|
|
+ log = getFSEditLog(storage);
|
|
|
log.initJournalsForWrite();
|
|
|
assertEquals("[[1,100], [101,200]]",
|
|
|
log.getEditLogManifest(1).toString());
|
|
@@ -875,7 +889,7 @@ public class TestEditLog extends TestCase {
|
|
|
storage = mockStorageWithEdits(
|
|
|
"[1,100]|[101,200]",
|
|
|
"[1,100]|[201,300]|[301,400]"); // nothing starting at 101
|
|
|
- log = new FSEditLog(storage);
|
|
|
+ log = getFSEditLog(storage);
|
|
|
log.initJournalsForWrite();
|
|
|
assertEquals("[[1,100], [101,200], [201,300], [301,400]]",
|
|
|
log.getEditLogManifest(1).toString());
|
|
@@ -885,7 +899,7 @@ public class TestEditLog extends TestCase {
|
|
|
storage = mockStorageWithEdits(
|
|
|
"[1,100]|[301,400]", // gap from 101 to 300
|
|
|
"[301,400]|[401,500]");
|
|
|
- log = new FSEditLog(storage);
|
|
|
+ log = getFSEditLog(storage);
|
|
|
log.initJournalsForWrite();
|
|
|
assertEquals("[[301,400], [401,500]]",
|
|
|
log.getEditLogManifest(1).toString());
|
|
@@ -895,7 +909,7 @@ public class TestEditLog extends TestCase {
|
|
|
storage = mockStorageWithEdits(
|
|
|
"[1,100]|[101,150]", // short log at 101
|
|
|
"[1,50]|[101,200]"); // short log at 1
|
|
|
- log = new FSEditLog(storage);
|
|
|
+ log = getFSEditLog(storage);
|
|
|
log.initJournalsForWrite();
|
|
|
assertEquals("[[1,100], [101,200]]",
|
|
|
log.getEditLogManifest(1).toString());
|
|
@@ -908,7 +922,7 @@ public class TestEditLog extends TestCase {
|
|
|
storage = mockStorageWithEdits(
|
|
|
"[1,100]|[101,]",
|
|
|
"[1,100]|[101,200]");
|
|
|
- log = new FSEditLog(storage);
|
|
|
+ log = getFSEditLog(storage);
|
|
|
log.initJournalsForWrite();
|
|
|
assertEquals("[[1,100], [101,200]]",
|
|
|
log.getEditLogManifest(1).toString());
|
|
@@ -998,7 +1012,7 @@ public class TestEditLog extends TestCase {
|
|
|
Collections.<URI>emptyList(),
|
|
|
editUris);
|
|
|
storage.format(new NamespaceInfo());
|
|
|
- FSEditLog editlog = new FSEditLog(storage);
|
|
|
+ FSEditLog editlog = getFSEditLog(storage);
|
|
|
// open the edit log and add two transactions
|
|
|
// logGenerationStamp is used, simply because it doesn't
|
|
|
// require complex arguments.
|
|
@@ -1080,7 +1094,7 @@ public class TestEditLog extends TestCase {
|
|
|
new AbortSpec(9, 0),
|
|
|
new AbortSpec(10, 1));
|
|
|
long totaltxnread = 0;
|
|
|
- FSEditLog editlog = new FSEditLog(storage);
|
|
|
+ FSEditLog editlog = getFSEditLog(storage);
|
|
|
editlog.initJournalsForWrite();
|
|
|
long startTxId = 1;
|
|
|
Iterable<EditLogInputStream> editStreams = editlog.selectInputStreams(startTxId,
|
|
@@ -1130,7 +1144,7 @@ public class TestEditLog extends TestCase {
|
|
|
assertEquals(1, files.length);
|
|
|
assertTrue(files[0].delete());
|
|
|
|
|
|
- FSEditLog editlog = new FSEditLog(storage);
|
|
|
+ FSEditLog editlog = getFSEditLog(storage);
|
|
|
editlog.initJournalsForWrite();
|
|
|
long startTxId = 1;
|
|
|
try {
|