HDFS-2538. option to disable fsck dots. Contributed by Mohammad Kamrul Islam.

git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1611220 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Allen Wittenauer 2014-07-16 23:55:32 +00:00
parent e8a1ff7efe
commit c477a166e1
4 changed files with 16 additions and 5 deletions

View File

@ -127,7 +127,7 @@ User Commands
Runs a HDFS filesystem checking utility. Runs a HDFS filesystem checking utility.
See {{{../hadoop-hdfs/HdfsUserGuide.html#fsck}fsck}} for more info. See {{{../hadoop-hdfs/HdfsUserGuide.html#fsck}fsck}} for more info.
Usage: <<<hadoop fsck [GENERIC_OPTIONS] <path> [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]]>>> Usage: <<<hadoop fsck [GENERIC_OPTIONS] <path> [-move | -delete | -openforwrite] [-files [-blocks [-locations | -racks]]] [-showprogress]>>>
*------------------+---------------------------------------------+ *------------------+---------------------------------------------+
|| COMMAND_OPTION || Description || COMMAND_OPTION || Description
@ -148,6 +148,8 @@ User Commands
*------------------+---------------------------------------------+ *------------------+---------------------------------------------+
| -racks | Print out network topology for data-node locations. | -racks | Print out network topology for data-node locations.
*------------------+---------------------------------------------+ *------------------+---------------------------------------------+
| -showprogress | Print out show progress in output. Default is OFF (no progress).
*------------------+---------------------------------------------+
* <<<fetchdt>>> * <<<fetchdt>>>

View File

@ -12,6 +12,8 @@ Trunk (Unreleased)
HDFS-5570. Deprecate hftp / hsftp and replace them with webhdfs / swebhdfs. HDFS-5570. Deprecate hftp / hsftp and replace them with webhdfs / swebhdfs.
(wheat9) (wheat9)
HDFS-2538. option to disable fsck dots (Mohammad Kamrul Islam via aw)
NEW FEATURES NEW FEATURES
HDFS-3125. Add JournalService to enable Journal Daemon. (suresh) HDFS-3125. Add JournalService to enable Journal Daemon. (suresh)

View File

@ -126,6 +126,7 @@ public class NamenodeFsck implements DataEncryptionKeyFactory {
private boolean showBlocks = false; private boolean showBlocks = false;
private boolean showLocations = false; private boolean showLocations = false;
private boolean showRacks = false; private boolean showRacks = false;
private boolean showprogress = false;
private boolean showCorruptFileBlocks = false; private boolean showCorruptFileBlocks = false;
/** /**
@ -203,6 +204,7 @@ public class NamenodeFsck implements DataEncryptionKeyFactory {
else if (key.equals("blocks")) { this.showBlocks = true; } else if (key.equals("blocks")) { this.showBlocks = true; }
else if (key.equals("locations")) { this.showLocations = true; } else if (key.equals("locations")) { this.showLocations = true; }
else if (key.equals("racks")) { this.showRacks = true; } else if (key.equals("racks")) { this.showRacks = true; }
else if (key.equals("showprogress")) { this.showprogress = true; }
else if (key.equals("openforwrite")) {this.showOpenFiles = true; } else if (key.equals("openforwrite")) {this.showOpenFiles = true; }
else if (key.equals("listcorruptfileblocks")) { else if (key.equals("listcorruptfileblocks")) {
this.showCorruptFileBlocks = true; this.showCorruptFileBlocks = true;
@ -381,10 +383,13 @@ void check(String parent, HdfsFileStatus file, Result res) throws IOException {
} else if (showFiles) { } else if (showFiles) {
out.print(path + " " + fileLen + " bytes, " + out.print(path + " " + fileLen + " bytes, " +
blocks.locatedBlockCount() + " block(s): "); blocks.locatedBlockCount() + " block(s): ");
} else { } else if (showprogress) {
out.print('.'); out.print('.');
} }
if (res.totalFiles % 100 == 0) { out.println(); out.flush(); } if ((showprogress) && res.totalFiles % 100 == 0) {
out.println();
out.flush();
}
int missing = 0; int missing = 0;
int corrupt = 0; int corrupt = 0;
long missize = 0; long missize = 0;

View File

@ -77,7 +77,7 @@ public class DFSck extends Configured implements Tool {
private static final String USAGE = "Usage: DFSck <path> " private static final String USAGE = "Usage: DFSck <path> "
+ "[-list-corruptfileblocks | " + "[-list-corruptfileblocks | "
+ "[-move | -delete | -openforwrite] " + "[-move | -delete | -openforwrite] "
+ "[-files [-blocks [-locations | -racks]]]]\n" + "[-files [-blocks [-locations | -racks]]]] [-showprogress]\n"
+ "\t<path>\tstart checking from this path\n" + "\t<path>\tstart checking from this path\n"
+ "\t-move\tmove corrupted files to /lost+found\n" + "\t-move\tmove corrupted files to /lost+found\n"
+ "\t-delete\tdelete corrupted files\n" + "\t-delete\tdelete corrupted files\n"
@ -90,7 +90,8 @@ public class DFSck extends Configured implements Tool {
+ "blocks and files they belong to\n" + "blocks and files they belong to\n"
+ "\t-blocks\tprint out block report\n" + "\t-blocks\tprint out block report\n"
+ "\t-locations\tprint out locations for every block\n" + "\t-locations\tprint out locations for every block\n"
+ "\t-racks\tprint out network topology for data-node locations\n\n" + "\t-racks\tprint out network topology for data-node locations\n"
+ "\t-showprogress\tshow progress in output. Default is OFF (no progress)\n\n"
+ "Please Note:\n" + "Please Note:\n"
+ "\t1. By default fsck ignores files opened for write, " + "\t1. By default fsck ignores files opened for write, "
+ "use -openforwrite to report such files. They are usually " + "use -openforwrite to report such files. They are usually "
@ -270,6 +271,7 @@ private int doWork(final String[] args) throws IOException {
else if (args[idx].equals("-blocks")) { url.append("&blocks=1"); } else if (args[idx].equals("-blocks")) { url.append("&blocks=1"); }
else if (args[idx].equals("-locations")) { url.append("&locations=1"); } else if (args[idx].equals("-locations")) { url.append("&locations=1"); }
else if (args[idx].equals("-racks")) { url.append("&racks=1"); } else if (args[idx].equals("-racks")) { url.append("&racks=1"); }
else if (args[idx].equals("-showprogress")) { url.append("&showprogress=1"); }
else if (args[idx].equals("-list-corruptfileblocks")) { else if (args[idx].equals("-list-corruptfileblocks")) {
url.append("&listcorruptfileblocks=1"); url.append("&listcorruptfileblocks=1");
doListCorruptFileBlocks = true; doListCorruptFileBlocks = true;