Repository: hbase Updated Branches: refs/heads/branch-2.0 e72a1c694 -> 263cc8d14
HBASE-20376 RowCounter and CellCounter documentations are incorrect Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/263cc8d1 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/263cc8d1 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/263cc8d1 Branch: refs/heads/branch-2.0 Commit: 263cc8d14371db4abeebcf2967393ee4a1ae614f Parents: e72a1c6 Author: Peter Somogyi <[email protected]> Authored: Thu Apr 12 10:05:17 2018 +0200 Committer: Peter Somogyi <[email protected]> Committed: Thu Apr 12 10:06:42 2018 +0200 ---------------------------------------------------------------------- bin/hbase | 6 +++ .../hadoop/hbase/mapreduce/CellCounter.java | 47 +++++++++++--------- .../hadoop/hbase/mapreduce/RowCounter.java | 6 +-- .../hadoop/hbase/mapreduce/TestRowCounter.java | 22 +++++---- 4 files changed, 45 insertions(+), 36 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/263cc8d1/bin/hbase ---------------------------------------------------------------------- diff --git a/bin/hbase b/bin/hbase index 5087e59..78dbbdd 100755 --- a/bin/hbase +++ b/bin/hbase @@ -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 http://git-wip-us.apache.org/repos/asf/hbase/blob/263cc8d1/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CellCounter.java ---------------------------------------------------------------------- diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CellCounter.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CellCounter.java index aa79aac..ff0f01c 100644 --- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CellCounter.java +++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/CellCounter.java @@ -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. http://git-wip-us.apache.org/repos/asf/hbase/blob/263cc8d1/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/RowCounter.java ---------------------------------------------------------------------- diff --git a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/RowCounter.java b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/RowCounter.java index 9c7b489..7fa5dec 100644 --- a/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/RowCounter.java +++ b/hbase-mapreduce/src/main/java/org/apache/hadoop/hbase/mapreduce/RowCounter.java @@ -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"); http://git-wip-us.apache.org/repos/asf/hbase/blob/263cc8d1/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestRowCounter.java ---------------------------------------------------------------------- diff --git a/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestRowCounter.java b/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestRowCounter.java index b07de7f..18c1874 100644 --- a/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestRowCounter.java +++ b/hbase-mapreduce/src/test/java/org/apache/hadoop/hbase/mapreduce/TestRowCounter.java @@ -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")); } }
