HDFS-8405. Fix a typo in NamenodeFsck. Contributed by Takanobu Asanuma
This commit is contained in:
parent
a2190bf15d
commit
0c590e1c09
|
@ -868,6 +868,8 @@ Release 2.7.1 - UNRELEASED
|
||||||
HDFS-6300. Prevent multiple balancers from running simultaneously
|
HDFS-6300. Prevent multiple balancers from running simultaneously
|
||||||
(Rakesh R via vinayakumarb)
|
(Rakesh R via vinayakumarb)
|
||||||
|
|
||||||
|
HDFS-8405. Fix a typo in NamenodeFsck. (Takanobu Asanuma via szetszwo)
|
||||||
|
|
||||||
Release 2.7.0 - 2015-04-20
|
Release 2.7.0 - 2015-04-20
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
|
|
@ -66,7 +66,7 @@ public class FsckServlet extends DfsServlet {
|
||||||
namesystem.getNumberOfDatanodes(DatanodeReportType.LIVE);
|
namesystem.getNumberOfDatanodes(DatanodeReportType.LIVE);
|
||||||
new NamenodeFsck(conf, nn,
|
new NamenodeFsck(conf, nn,
|
||||||
bm.getDatanodeManager().getNetworkTopology(), pmap, out,
|
bm.getDatanodeManager().getNetworkTopology(), pmap, out,
|
||||||
totalDatanodes, bm.minReplication, remoteAddress).fsck();
|
totalDatanodes, remoteAddress).fsck();
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -121,7 +121,6 @@ public class NamenodeFsck implements DataEncryptionKeyFactory {
|
||||||
private final NameNode namenode;
|
private final NameNode namenode;
|
||||||
private final NetworkTopology networktopology;
|
private final NetworkTopology networktopology;
|
||||||
private final int totalDatanodes;
|
private final int totalDatanodes;
|
||||||
private final short minReplication;
|
|
||||||
private final InetAddress remoteAddress;
|
private final InetAddress remoteAddress;
|
||||||
|
|
||||||
private String lostFound = null;
|
private String lostFound = null;
|
||||||
|
@ -181,19 +180,17 @@ public class NamenodeFsck implements DataEncryptionKeyFactory {
|
||||||
* @param pmap key=value[] map passed to the http servlet as url parameters
|
* @param pmap key=value[] map passed to the http servlet as url parameters
|
||||||
* @param out output stream to write the fsck output
|
* @param out output stream to write the fsck output
|
||||||
* @param totalDatanodes number of live datanodes
|
* @param totalDatanodes number of live datanodes
|
||||||
* @param minReplication minimum replication
|
|
||||||
* @param remoteAddress source address of the fsck request
|
* @param remoteAddress source address of the fsck request
|
||||||
*/
|
*/
|
||||||
NamenodeFsck(Configuration conf, NameNode namenode,
|
NamenodeFsck(Configuration conf, NameNode namenode,
|
||||||
NetworkTopology networktopology,
|
NetworkTopology networktopology,
|
||||||
Map<String,String[]> pmap, PrintWriter out,
|
Map<String,String[]> pmap, PrintWriter out,
|
||||||
int totalDatanodes, short minReplication, InetAddress remoteAddress) {
|
int totalDatanodes, InetAddress remoteAddress) {
|
||||||
this.conf = conf;
|
this.conf = conf;
|
||||||
this.namenode = namenode;
|
this.namenode = namenode;
|
||||||
this.networktopology = networktopology;
|
this.networktopology = networktopology;
|
||||||
this.out = out;
|
this.out = out;
|
||||||
this.totalDatanodes = totalDatanodes;
|
this.totalDatanodes = totalDatanodes;
|
||||||
this.minReplication = minReplication;
|
|
||||||
this.remoteAddress = remoteAddress;
|
this.remoteAddress = remoteAddress;
|
||||||
this.bpPolicy = BlockPlacementPolicy.getInstance(conf, null,
|
this.bpPolicy = BlockPlacementPolicy.getInstance(conf, null,
|
||||||
networktopology,
|
networktopology,
|
||||||
|
@ -308,7 +305,6 @@ public class NamenodeFsck implements DataEncryptionKeyFactory {
|
||||||
final long startTime = Time.monotonicNow();
|
final long startTime = Time.monotonicNow();
|
||||||
try {
|
try {
|
||||||
if(blockIds != null) {
|
if(blockIds != null) {
|
||||||
|
|
||||||
String[] blocks = blockIds.split(" ");
|
String[] blocks = blockIds.split(" ");
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
sb.append("FSCK started by " +
|
sb.append("FSCK started by " +
|
||||||
|
@ -561,7 +557,7 @@ public class NamenodeFsck implements DataEncryptionKeyFactory {
|
||||||
res.numExpectedReplicas += targetFileReplication;
|
res.numExpectedReplicas += targetFileReplication;
|
||||||
|
|
||||||
// count under min repl'd blocks
|
// count under min repl'd blocks
|
||||||
if(totalReplicasPerBlock < minReplication){
|
if(totalReplicasPerBlock < res.minReplication){
|
||||||
res.numUnderMinReplicatedBlocks++;
|
res.numUnderMinReplicatedBlocks++;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -582,7 +578,7 @@ public class NamenodeFsck implements DataEncryptionKeyFactory {
|
||||||
}
|
}
|
||||||
|
|
||||||
// count minimally replicated blocks
|
// count minimally replicated blocks
|
||||||
if (totalReplicasPerBlock >= minReplication)
|
if (totalReplicasPerBlock >= res.minReplication)
|
||||||
res.numMinReplicatedBlocks++;
|
res.numMinReplicatedBlocks++;
|
||||||
|
|
||||||
// count missing replicas / under replicated blocks
|
// count missing replicas / under replicated blocks
|
||||||
|
@ -601,7 +597,7 @@ public class NamenodeFsck implements DataEncryptionKeyFactory {
|
||||||
decommissioningReplicas + " decommissioning replica(s).");
|
decommissioningReplicas + " decommissioning replica(s).");
|
||||||
}
|
}
|
||||||
|
|
||||||
// count mis replicated blocks block
|
// count mis replicated blocks
|
||||||
BlockPlacementStatus blockPlacementStatus = bpPolicy
|
BlockPlacementStatus blockPlacementStatus = bpPolicy
|
||||||
.verifyBlockPlacement(path, lBlk, targetFileReplication);
|
.verifyBlockPlacement(path, lBlk, targetFileReplication);
|
||||||
if (!blockPlacementStatus.isPlacementPolicySatisfied()) {
|
if (!blockPlacementStatus.isPlacementPolicySatisfied()) {
|
||||||
|
@ -724,8 +720,8 @@ public class NamenodeFsck implements DataEncryptionKeyFactory {
|
||||||
private void countStorageTypeSummary(HdfsFileStatus file, LocatedBlock lBlk) {
|
private void countStorageTypeSummary(HdfsFileStatus file, LocatedBlock lBlk) {
|
||||||
StorageType[] storageTypes = lBlk.getStorageTypes();
|
StorageType[] storageTypes = lBlk.getStorageTypes();
|
||||||
storageTypeSummary.add(Arrays.copyOf(storageTypes, storageTypes.length),
|
storageTypeSummary.add(Arrays.copyOf(storageTypes, storageTypes.length),
|
||||||
namenode.getNamesystem().getBlockManager()
|
namenode.getNamesystem().getBlockManager()
|
||||||
.getStoragePolicy(file.getStoragePolicy()));
|
.getStoragePolicy(file.getStoragePolicy()));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void deleteCorruptedFile(String path) {
|
private void deleteCorruptedFile(String path) {
|
||||||
|
@ -1069,7 +1065,7 @@ public class NamenodeFsck implements DataEncryptionKeyFactory {
|
||||||
((float) (numUnderMinReplicatedBlocks * 100) / (float) totalBlocks))
|
((float) (numUnderMinReplicatedBlocks * 100) / (float) totalBlocks))
|
||||||
.append(" %)");
|
.append(" %)");
|
||||||
}
|
}
|
||||||
res.append("\n ").append("DFSConfigKeys.DFS_NAMENODE_REPLICATION_MIN_KEY:\t")
|
res.append("\n ").append(DFSConfigKeys.DFS_NAMENODE_REPLICATION_MIN_KEY + ":\t")
|
||||||
.append(minReplication);
|
.append(minReplication);
|
||||||
}
|
}
|
||||||
if(corruptFiles>0) {
|
if(corruptFiles>0) {
|
||||||
|
|
|
@ -785,7 +785,7 @@ public class TestFsck {
|
||||||
System.out.println(outStr);
|
System.out.println(outStr);
|
||||||
assertTrue(outStr.contains(NamenodeFsck.HEALTHY_STATUS));
|
assertTrue(outStr.contains(NamenodeFsck.HEALTHY_STATUS));
|
||||||
assertTrue(outStr.contains("UNDER MIN REPL'D BLOCKS:\t1 (100.0 %)"));
|
assertTrue(outStr.contains("UNDER MIN REPL'D BLOCKS:\t1 (100.0 %)"));
|
||||||
assertTrue(outStr.contains("DFSConfigKeys.DFS_NAMENODE_REPLICATION_MIN_KEY:\t2"));
|
assertTrue(outStr.contains("dfs.namenode.replication.min:\t2"));
|
||||||
} finally {
|
} finally {
|
||||||
if (cluster != null) {cluster.shutdown();}
|
if (cluster != null) {cluster.shutdown();}
|
||||||
}
|
}
|
||||||
|
@ -1052,7 +1052,7 @@ public class TestFsck {
|
||||||
PrintWriter out = new PrintWriter(result, true);
|
PrintWriter out = new PrintWriter(result, true);
|
||||||
InetAddress remoteAddress = InetAddress.getLocalHost();
|
InetAddress remoteAddress = InetAddress.getLocalHost();
|
||||||
NamenodeFsck fsck = new NamenodeFsck(conf, namenode, nettop, pmap, out,
|
NamenodeFsck fsck = new NamenodeFsck(conf, namenode, nettop, pmap, out,
|
||||||
NUM_REPLICAS, (short)1, remoteAddress);
|
NUM_REPLICAS, remoteAddress);
|
||||||
|
|
||||||
// Run the fsck and check the Result
|
// Run the fsck and check the Result
|
||||||
final HdfsFileStatus file =
|
final HdfsFileStatus file =
|
||||||
|
@ -1129,7 +1129,7 @@ public class TestFsck {
|
||||||
PrintWriter out = new PrintWriter(result, true);
|
PrintWriter out = new PrintWriter(result, true);
|
||||||
InetAddress remoteAddress = InetAddress.getLocalHost();
|
InetAddress remoteAddress = InetAddress.getLocalHost();
|
||||||
NamenodeFsck fsck = new NamenodeFsck(conf, namenode, nettop, pmap, out,
|
NamenodeFsck fsck = new NamenodeFsck(conf, namenode, nettop, pmap, out,
|
||||||
NUM_DN, REPL_FACTOR, remoteAddress);
|
NUM_DN, remoteAddress);
|
||||||
|
|
||||||
// Run the fsck and check the Result
|
// Run the fsck and check the Result
|
||||||
final HdfsFileStatus file =
|
final HdfsFileStatus file =
|
||||||
|
@ -1176,7 +1176,7 @@ public class TestFsck {
|
||||||
when(blockManager.getDatanodeManager()).thenReturn(dnManager);
|
when(blockManager.getDatanodeManager()).thenReturn(dnManager);
|
||||||
|
|
||||||
NamenodeFsck fsck = new NamenodeFsck(conf, namenode, nettop, pmap, out,
|
NamenodeFsck fsck = new NamenodeFsck(conf, namenode, nettop, pmap, out,
|
||||||
NUM_REPLICAS, (short)1, remoteAddress);
|
NUM_REPLICAS, remoteAddress);
|
||||||
|
|
||||||
String pathString = "/tmp/testFile";
|
String pathString = "/tmp/testFile";
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue