|
@@ -634,9 +634,9 @@ public class NamenodeFsck implements DataEncryptionKeyFactory {
|
|
report.append(" Live_repl=" + liveReplicas);
|
|
report.append(" Live_repl=" + liveReplicas);
|
|
if (showLocations || showRacks || showReplicaDetails) {
|
|
if (showLocations || showRacks || showReplicaDetails) {
|
|
StringBuilder sb = new StringBuilder("[");
|
|
StringBuilder sb = new StringBuilder("[");
|
|
- Iterable<DatanodeStorageInfo> storages = bm.getStorages(block.getLocalBlock());
|
|
|
|
- for (Iterator<DatanodeStorageInfo> iterator = storages.iterator(); iterator.hasNext();) {
|
|
|
|
- DatanodeStorageInfo storage = iterator.next();
|
|
|
|
|
|
+ DatanodeStorageInfo[] storages = bm.getStorages(storedBlock);
|
|
|
|
+ for (int i = 0; i < storages.length; i++) {
|
|
|
|
+ DatanodeStorageInfo storage = storages[i];
|
|
DatanodeDescriptor dnDesc = storage.getDatanodeDescriptor();
|
|
DatanodeDescriptor dnDesc = storage.getDatanodeDescriptor();
|
|
if (showRacks) {
|
|
if (showRacks) {
|
|
sb.append(NodeBase.getPath(dnDesc));
|
|
sb.append(NodeBase.getPath(dnDesc));
|
|
@@ -645,7 +645,7 @@ public class NamenodeFsck implements DataEncryptionKeyFactory {
|
|
.getStorageType()));
|
|
.getStorageType()));
|
|
}
|
|
}
|
|
if (showReplicaDetails) {
|
|
if (showReplicaDetails) {
|
|
- LightWeightLinkedSet<Block> blocksExcess =
|
|
|
|
|
|
+ LightWeightLinkedSet<BlockInfo> blocksExcess =
|
|
bm.excessReplicateMap.get(dnDesc.getDatanodeUuid());
|
|
bm.excessReplicateMap.get(dnDesc.getDatanodeUuid());
|
|
Collection<DatanodeDescriptor> corruptReplicas =
|
|
Collection<DatanodeDescriptor> corruptReplicas =
|
|
bm.getCorruptReplicas(block.getLocalBlock());
|
|
bm.getCorruptReplicas(block.getLocalBlock());
|
|
@@ -666,7 +666,7 @@ public class NamenodeFsck implements DataEncryptionKeyFactory {
|
|
sb.append("LIVE)");
|
|
sb.append("LIVE)");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if (iterator.hasNext()) {
|
|
|
|
|
|
+ if (i < storages.length - 1) {
|
|
sb.append(", ");
|
|
sb.append(", ");
|
|
}
|
|
}
|
|
}
|
|
}
|