HBASE-20376 RowCounter and CellCounter documentations are incorrect
This commit is contained in:
parent
b0701434e3
commit
e51ced4f17
|
@ -104,6 +104,8 @@ if [ $# = 0 ]; then
|
|||
echo " canary Run the Canary tool"
|
||||
echo " version Print the version"
|
||||
echo " regionsplitter Run RegionSplitter tool"
|
||||
echo " rowcounter Run RowCounter tool"
|
||||
echo " cellcounter Run CellCounter tool"
|
||||
echo " CLASSNAME Run the class named CLASSNAME"
|
||||
exit 1
|
||||
fi
|
||||
|
@ -459,6 +461,10 @@ elif [ "$COMMAND" = "version" ] ; then
|
|||
CLASS='org.apache.hadoop.hbase.util.VersionInfo'
|
||||
elif [ "$COMMAND" = "regionsplitter" ] ; then
|
||||
CLASS='org.apache.hadoop.hbase.util.RegionSplitter'
|
||||
elif [ "$COMMAND" = "rowcounter" ] ; then
|
||||
CLASS='org.apache.hadoop.hbase.mapreduce.RowCounter'
|
||||
elif [ "$COMMAND" = "cellcounter" ] ; then
|
||||
CLASS='org.apache.hadoop.hbase.mapreduce.CellCounter'
|
||||
else
|
||||
CLASS=$COMMAND
|
||||
fi
|
||||
|
|
|
@ -292,33 +292,38 @@ public class CellCounter extends Configured implements Tool {
|
|||
@Override
|
||||
public int run(String[] args) throws Exception {
|
||||
if (args.length < 2) {
|
||||
System.err.println("ERROR: Wrong number of parameters: " + args.length);
|
||||
System.err.println("Usage: CellCounter ");
|
||||
System.err.println(" <tablename> <outputDir> <reportSeparator> [^[regex pattern] or " +
|
||||
"[Prefix] for row filter]] --starttime=[starttime] --endtime=[endtime]");
|
||||
System.err.println(" Note: -D properties will be applied to the conf used. ");
|
||||
System.err.println(" Additionally, all of the SCAN properties from TableInputFormat");
|
||||
System.err.println(" can be specified to get fine grained control on what is counted..");
|
||||
System.err.println(" -D " + TableInputFormat.SCAN_ROW_START + "=<rowkey>");
|
||||
System.err.println(" -D " + TableInputFormat.SCAN_ROW_STOP + "=<rowkey>");
|
||||
System.err.println(" -D " + TableInputFormat.SCAN_COLUMNS + "=\"<col1> <col2>...\"");
|
||||
System.err.println(" -D " + TableInputFormat.SCAN_COLUMN_FAMILY + "=<family1>,<family2>, ...");
|
||||
System.err.println(" -D " + TableInputFormat.SCAN_TIMESTAMP + "=<timestamp>");
|
||||
System.err.println(" -D " + TableInputFormat.SCAN_TIMERANGE_START + "=<timestamp>");
|
||||
System.err.println(" -D " + TableInputFormat.SCAN_TIMERANGE_END + "=<timestamp>");
|
||||
System.err.println(" -D " + TableInputFormat.SCAN_MAXVERSIONS + "=<count>");
|
||||
System.err.println(" -D " + TableInputFormat.SCAN_CACHEDROWS + "=<count>");
|
||||
System.err.println(" -D " + TableInputFormat.SCAN_BATCHSIZE + "=<count>");
|
||||
System.err.println(" <reportSeparator> parameter can be used to override the default report separator " +
|
||||
"string : used to separate the rowId/column family name and qualifier name.");
|
||||
System.err.println(" [^[regex pattern] or [Prefix] parameter can be used to limit the cell counter count " +
|
||||
"operation to a limited subset of rows from the table based on regex or prefix pattern.");
|
||||
printUsage(args.length);
|
||||
return -1;
|
||||
}
|
||||
Job job = createSubmittableJob(getConf(), args);
|
||||
return (job.waitForCompletion(true) ? 0 : 1);
|
||||
}
|
||||
|
||||
private void printUsage(int parameterCount) {
|
||||
System.err.println("ERROR: Wrong number of parameters: " + parameterCount);
|
||||
System.err.println("Usage: hbase cellcounter <tablename> <outputDir> [reportSeparator] "
|
||||
+ "[^[regex pattern] or [Prefix]] [--starttime=<starttime> --endtime=<endtime>]");
|
||||
System.err.println(" Note: -D properties will be applied to the conf used.");
|
||||
System.err.println(" Additionally, all of the SCAN properties from TableInputFormat can be "
|
||||
+ "specified to get fine grained control on what is counted.");
|
||||
System.err.println(" -D" + TableInputFormat.SCAN_ROW_START + "=<rowkey>");
|
||||
System.err.println(" -D" + TableInputFormat.SCAN_ROW_STOP + "=<rowkey>");
|
||||
System.err.println(" -D" + TableInputFormat.SCAN_COLUMNS + "=\"<col1> <col2>...\"");
|
||||
System.err.println(" -D" + TableInputFormat.SCAN_COLUMN_FAMILY
|
||||
+ "=<family1>,<family2>, ...");
|
||||
System.err.println(" -D" + TableInputFormat.SCAN_TIMESTAMP + "=<timestamp>");
|
||||
System.err.println(" -D" + TableInputFormat.SCAN_TIMERANGE_START + "=<timestamp>");
|
||||
System.err.println(" -D" + TableInputFormat.SCAN_TIMERANGE_END + "=<timestamp>");
|
||||
System.err.println(" -D" + TableInputFormat.SCAN_MAXVERSIONS + "=<count>");
|
||||
System.err.println(" -D" + TableInputFormat.SCAN_CACHEDROWS + "=<count>");
|
||||
System.err.println(" -D" + TableInputFormat.SCAN_BATCHSIZE + "=<count>");
|
||||
System.err.println(" <reportSeparator> parameter can be used to override the default report "
|
||||
+ "separator string : used to separate the rowId/column family name and qualifier name.");
|
||||
System.err.println(" [^[regex pattern] or [Prefix] parameter can be used to limit the cell "
|
||||
+ "counter count operation to a limited subset of rows from the table based on regex or "
|
||||
+ "prefix pattern.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Main entry point.
|
||||
* @param args The command line parameters.
|
||||
|
|
|
@ -221,9 +221,9 @@ public class RowCounter extends Configured implements Tool {
|
|||
* Note that we don't document --expected-count, because it's intended for test.
|
||||
*/
|
||||
private static void printUsage() {
|
||||
System.err.println("Usage: RowCounter [options] <tablename> " +
|
||||
"[--starttime=[start] --endtime=[end] " +
|
||||
"[--range=[startKey],[endKey][;[startKey],[endKey]...]] [<column1> <column2>...]");
|
||||
System.err.println("Usage: hbase rowcounter [options] <tablename> "
|
||||
+ "[--starttime=<start> --endtime=<end>] "
|
||||
+ "[--range=[startKey],[endKey][;[startKey],[endKey]...]] [<column1> <column2>...]");
|
||||
System.err.println("For performance consider the following options:\n"
|
||||
+ "-Dhbase.client.scanner.caching=100\n"
|
||||
+ "-Dmapreduce.map.speculative=false");
|
||||
|
|
|
@ -363,13 +363,7 @@ public class TestRowCounter {
|
|||
} catch (SecurityException e) {
|
||||
assertEquals(-1, newSecurityManager.getExitCode());
|
||||
assertTrue(data.toString().contains("Wrong number of parameters:"));
|
||||
assertTrue(data.toString().contains(
|
||||
"Usage: RowCounter [options] <tablename> " +
|
||||
"[--starttime=[start] --endtime=[end] " +
|
||||
"[--range=[startKey],[endKey][;[startKey],[endKey]...]] " +
|
||||
"[<column1> <column2>...]"));
|
||||
assertTrue(data.toString().contains("-Dhbase.client.scanner.caching=100"));
|
||||
assertTrue(data.toString().contains("-Dmapreduce.map.speculative=false"));
|
||||
assertUsageContent(data.toString());
|
||||
}
|
||||
data.reset();
|
||||
try {
|
||||
|
@ -383,18 +377,22 @@ public class TestRowCounter {
|
|||
assertTrue(data.toString().contains(
|
||||
"Please specify range in such format as \"--range=a,b\" or, with only one boundary," +
|
||||
" \"--range=,b\" or \"--range=a,\""));
|
||||
assertTrue(data.toString().contains(
|
||||
"Usage: RowCounter [options] <tablename> " +
|
||||
"[--starttime=[start] --endtime=[end] " +
|
||||
"[--range=[startKey],[endKey][;[startKey],[endKey]...]] " +
|
||||
"[<column1> <column2>...]"));
|
||||
assertUsageContent(data.toString());
|
||||
}
|
||||
|
||||
} finally {
|
||||
System.setErr(oldPrintStream);
|
||||
System.setSecurityManager(SECURITY_MANAGER);
|
||||
}
|
||||
}
|
||||
|
||||
private void assertUsageContent(String usage) {
|
||||
assertTrue(usage.contains("Usage: hbase rowcounter [options] <tablename> "
|
||||
+ "[--starttime=<start> --endtime=<end>] "
|
||||
+ "[--range=[startKey],[endKey][;[startKey],[endKey]...]] [<column1> <column2>...]"));
|
||||
assertTrue(usage.contains("For performance consider the following options:"));
|
||||
assertTrue(usage.contains("-Dhbase.client.scanner.caching=100"));
|
||||
assertTrue(usage.contains("-Dmapreduce.map.speculative=false"));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue