HDFS-7080. Fix finalize and upgrade unit test failures. (Arpit Agarwal)
This commit is contained in:
parent
900f6e52ec
commit
4eab083b1b
@ -52,4 +52,6 @@
|
||||
|
||||
HDFS-6581. Few more unit test fixes for HDFS-6581. (Arpit Agarwal)
|
||||
|
||||
HDFS-7080. Fix finalize and upgrade unit test failures. (Arpit Agarwal)
|
||||
|
||||
|
||||
|
@ -133,6 +133,11 @@ public class DFSConfigKeys extends CommonConfigurationKeys {
|
||||
public static final int DFS_DATANODE_RAM_DISK_LOW_WATERMARK_PERCENT_DEFAULT = 10;
|
||||
public static final String DFS_DATANODE_RAM_DISK_LOW_WATERMARK_REPLICAS = "dfs.datanode.ram.disk.low.watermark.replicas";
|
||||
public static final int DFS_DATANODE_RAM_DISK_LOW_WATERMARK_REPLICAS_DEFAULT = 3;
|
||||
|
||||
// This setting is for testing/internal use only.
|
||||
public static final String DFS_DATANODE_DUPLICATE_REPLICA_DELETION = "dfs.datanode.duplicate.replica.deletion";
|
||||
public static final boolean DFS_DATANODE_DUPLICATE_REPLICA_DELETION_DEFAULT = true;
|
||||
|
||||
public static final String DFS_NAMENODE_PATH_BASED_CACHE_BLOCK_MAP_ALLOCATION_PERCENT =
|
||||
"dfs.namenode.path.based.cache.block.map.allocation.percent";
|
||||
public static final float DFS_NAMENODE_PATH_BASED_CACHE_BLOCK_MAP_ALLOCATION_PERCENT_DEFAULT = 0.25f;
|
||||
|
@ -68,6 +68,7 @@ class BlockPoolSlice {
|
||||
private static final String DU_CACHE_FILE = "dfsUsed";
|
||||
private volatile boolean dfsUsedSaved = false;
|
||||
private static final int SHUTDOWN_HOOK_PRIORITY = 30;
|
||||
private final boolean deleteDuplicateReplicas;
|
||||
|
||||
// TODO:FEDERATION scalability issue - a thread per DU is needed
|
||||
private final DU dfsUsage;
|
||||
@ -94,6 +95,10 @@ class BlockPoolSlice {
|
||||
}
|
||||
}
|
||||
|
||||
this.deleteDuplicateReplicas = conf.getBoolean(
|
||||
DFSConfigKeys.DFS_DATANODE_DUPLICATE_REPLICA_DELETION,
|
||||
DFSConfigKeys.DFS_DATANODE_DUPLICATE_REPLICA_DELETION_DEFAULT);
|
||||
|
||||
// Files that were being written when the datanode was last shutdown
|
||||
// are now moved back to the data directory. It is possible that
|
||||
// in the future, we might want to do some sort of datanode-local
|
||||
@ -509,6 +514,11 @@ ReplicaInfo resolveDuplicateReplicas(
|
||||
final ReplicaInfo replica1, final ReplicaInfo replica2,
|
||||
final ReplicaMap volumeMap) throws IOException {
|
||||
|
||||
if (!deleteDuplicateReplicas) {
|
||||
// Leave both block replicas in place.
|
||||
return replica1;
|
||||
}
|
||||
|
||||
ReplicaInfo replicaToKeep;
|
||||
ReplicaInfo replicaToDelete;
|
||||
|
||||
|
@ -115,9 +115,12 @@ public void testFinalize() throws Exception {
|
||||
* the upgrade. Actually it is ok for those contents to change.
|
||||
* For now disabling block verification so that the contents are
|
||||
* not changed.
|
||||
* Disable duplicate replica deletion as the test intentionally
|
||||
* mirrors the contents of storage directories.
|
||||
*/
|
||||
conf = new HdfsConfiguration();
|
||||
conf.setInt(DFSConfigKeys.DFS_DATANODE_SCAN_PERIOD_HOURS_KEY, -1);
|
||||
conf.setBoolean(DFSConfigKeys.DFS_DATANODE_DUPLICATE_REPLICA_DELETION, false);
|
||||
conf = UpgradeUtilities.initializeStorageStateConf(numDirs, conf);
|
||||
String[] nameNodeDirs = conf.getStrings(DFSConfigKeys.DFS_NAMENODE_NAME_DIR_KEY);
|
||||
String[] dataNodeDirs = conf.getStrings(DFSConfigKeys.DFS_DATANODE_DATA_DIR_KEY);
|
||||
|
@ -229,6 +229,7 @@ public void testUpgrade() throws Exception {
|
||||
conf = UpgradeUtilities.initializeStorageStateConf(numDirs, conf);
|
||||
String[] nameNodeDirs = conf.getStrings(DFSConfigKeys.DFS_NAMENODE_NAME_DIR_KEY);
|
||||
String[] dataNodeDirs = conf.getStrings(DFSConfigKeys.DFS_DATANODE_DATA_DIR_KEY);
|
||||
conf.setBoolean(DFSConfigKeys.DFS_DATANODE_DUPLICATE_REPLICA_DELETION, false);
|
||||
|
||||
log("Normal NameNode upgrade", numDirs);
|
||||
UpgradeUtilities.createNameNodeStorageDirs(nameNodeDirs, "current");
|
||||
@ -370,6 +371,7 @@ public void testUpgrade() throws Exception {
|
||||
{
|
||||
conf = new HdfsConfiguration();
|
||||
conf.setInt(DFSConfigKeys.DFS_DATANODE_SCAN_PERIOD_HOURS_KEY, -1);
|
||||
conf.setBoolean(DFSConfigKeys.DFS_DATANODE_DUPLICATE_REPLICA_DELETION, false);
|
||||
conf = UpgradeUtilities.initializeStorageStateConf(numDirs, conf);
|
||||
String[] nameNodeDirs = conf.getStrings(DFSConfigKeys.DFS_NAMENODE_NAME_DIR_KEY);
|
||||
|
||||
@ -405,6 +407,7 @@ public void testUpgrade4() throws Exception {
|
||||
int numDirs = 4;
|
||||
conf = new HdfsConfiguration();
|
||||
conf.setInt(DFSConfigKeys.DFS_DATANODE_SCAN_PERIOD_HOURS_KEY, -1);
|
||||
conf.setBoolean(DFSConfigKeys.DFS_DATANODE_DUPLICATE_REPLICA_DELETION, false);
|
||||
conf = UpgradeUtilities.initializeStorageStateConf(numDirs, conf);
|
||||
String[] nameNodeDirs = conf.getStrings(DFSConfigKeys.DFS_NAMENODE_NAME_DIR_KEY);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user