This is an automated email from the ASF dual-hosted git repository.

nihaljain pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hbase-operator-tools.git


The following commit(s) were added to refs/heads/master by this push:
     new 0bf6ee1  HBASE-27980 Sync the hbck2 README page and hbck2 command help 
output (#134)
0bf6ee1 is described below

commit 0bf6ee19352bfd597bbe3d4325017a0fceaef6b9
Author: Nihal Jain <nihaljain...@gmail.com>
AuthorDate: Sun Aug 20 23:58:37 2023 +0530

    HBASE-27980 Sync the hbck2 README page and hbck2 command help output (#134)
    
    - Sync the readme and help output, both ways and finally paste help output 
in readme file
    - Fix errors and formatting issues, here and there
    - Fix ordering of new commands in code, as we follow alphabetical ordering 
of commands
    - Also syncing readme with help output, exposes new commands like 
`recoverUnknown` and `regionInfoMismatch` in the README.md
    
    Signed-off-by: Peter Somogyi <psomo...@apache.org>
---
 hbase-hbck2/README.md                              | 96 +++++++++++++++-------
 .../src/main/java/org/apache/hbase/HBCK2.java      | 63 ++++++++------
 2 files changed, 104 insertions(+), 55 deletions(-)

diff --git a/hbase-hbck2/README.md b/hbase-hbck2/README.md
index 0c01eeb..b5c14ed 100644
--- a/hbase-hbck2/README.md
+++ b/hbase-hbck2/README.md
@@ -101,7 +101,7 @@ Options:
                                                   ensemble
 Command:
  addFsRegionsMissingInMeta [OPTIONS]
-[<NAMESPACE|NAMESPACE:TABLENAME>...|-i <INPUTFILES>...]
+      [<NAMESPACE|NAMESPACE:TABLENAME>...|-i <INPUTFILES>...]
    Options:
     -i,--inputFiles  take one or more files of namespace or table names
     -o,--outputFile  name/prefix of the file(s) to dump region names
@@ -142,10 +142,10 @@ Command:
    region names in a single file, one per line.
    NOTE: -n option is applicable only if -o option is specified.
 
- assigns [OPTIONS] <ENCODED_REGIONNAME/INPUTFILES_FOR_REGIONNAMES>...
+ assigns [OPTIONS] [<ENCODED_REGIONNAME>...|-i <INPUT_FILE>...]
    Options:
     -o,--override  override ownership by another procedure
-    -i,--inputFiles  take one or more encoded region names
+    -i,--inputFiles  take one or more files of encoded region names
    A 'raw' assign that can be used even during Master initialization (if
    the -skip flag is specified). Skirts Coprocessors. Pass one or more
    encoded region names. 1588230740 is the hard-coded name for the
@@ -157,12 +157,12 @@ Command:
    Each file contains encoded region names, one per line. For example:
      $ HBCK2 assigns -i fileName1 fileName2
 
- bypass [OPTIONS] <PID>...
+ bypass [OPTIONS] [<PID>...|-i <INPUT_FILE>...]
    Options:
     -o,--override   override if procedure is running/stuck
     -r,--recursive  bypass parent and its children. SLOW! EXPENSIVE!
     -w,--lockWait   milliseconds to wait before giving up; default=1
-    -i,--inputFiles  take one or more input files of PIDs
+    -i,--inputFiles  take one or more input files of PID's
    Pass one (or more) procedure 'pid's to skip to procedure finish. Parent
    of bypassed procedure will also be skipped to the finish. Entities will
    be left in an inconsistent state and will require manual fixup. May
@@ -174,10 +174,12 @@ Command:
    Each file contains PID's, one per line. For example:
      $ HBCK2 bypass -i fileName1 fileName2
 
- extraRegionsInMeta <NAMESPACE|NAMESPACE:TABLENAME>...|-i <INPUT_FILE>...
+ extraRegionsInMeta [<NAMESPACE|NAMESPACE:TABLENAME>...|
+      -i <INPUT_FILE>...]
    Options:
     -f, --fix    fix meta by removing all extra regions found.
-    -i,--inputFiles  take one or more input files of namespace or table names
+    -i,--inputFiles  take one or more input files of namespace or
+   table names
    Reports regions present on hbase:meta, but with no related
    directories on the file system. Needs hbase:meta to be online.
    For each table name passed as parameter, performs diff
@@ -198,7 +200,8 @@ Command:
    Returns list of extra regions for each table passed as parameter, or
    for each table on namespaces specified as parameter.
    If -i or --inputFiles is specified, pass one or more input file names.
-   Each file contains <NAMESPACE|NAMESPACE:TABLENAME>, one per line. For 
example:
+   Each file contains <NAMESPACE|NAMESPACE:TABLENAME>, one per line.
+   For example:
      $ HBCK2 extraRegionsInMeta -i fileName1 fileName2
 
  filesystem [OPTIONS] [<TABLENAME>...|-i <INPUT_FILE>...]
@@ -212,8 +215,8 @@ Command:
    restores 'hbase.version' if missing. Interacts with the filesystem
    only! Modified regions need to be reopened to pick-up changes.
    If -i or --inputFiles is specified, pass one or more input file names.
-   Each file contains <TABLENAME>, one per line. For example:
-     $ HBCK2 extraRegionsInMeta -i fileName1 fileName2
+   Each file contains table names, one per line. For example:
+     $ HBCK2 filesystem -i fileName1 fileName2
 
  fixMeta
    Do a server-side fix of bad or inconsistent state in hbase:meta.
@@ -231,7 +234,7 @@ Command:
    for how to generate new report.
    SEE ALSO: reportMissingRegionsInMeta
 
- generateMissingTableDescriptorFile <TABLENAME>
+ generateMissingTableDescriptorFile [OPTIONS] [<TABLENAME>...]
    Trying to fix an orphan table by generating a missing table descriptor
    file. This command will have no effect if the table folder is missing
    or if the .tableinfo is present (we don't override existing table
@@ -249,7 +252,36 @@ Command:
    This method does not change anything in HBase, only writes the new
    .tableinfo file to the file system. Orphan tables can cause e.g.
    ServerCrashProcedures to stuck, you might need to fix these still
-   after you generated the missing table info files.
+   after you generated the missing table info files. If no tables are
+   specified, .tableinfo will be generated for all missing table
+   descriptors.
+
+ recoverUnknown
+   Schedule ServerCrashProcedure(SCP) for RegionServers that are reported
+   as unknown.
+   Returns the pid(s) of the created ServerCrashProcedure(s) or -1 if
+   no procedure created (see master logs for why not).
+   Command support added in hbase versions 2.2.7, 2.3.5, 2.4.3,
+     2.5.0 or newer.
+
+ regionInfoMismatch
+   Options:
+   -f,--fix Update hbase:meta with the corrections
+   It is recommended to first run this utility without the fix
+   option to ensure that the utility is generating the correct
+   serialized RegionInfo data structures. Inspect the output to
+   confirm that the hbase:meta rowkey matches the new RegionInfo.
+
+   This tool will read hbase:meta and report any regions whose rowkey
+   and cell value differ in their encoded region name. HBASE-23328
+   illustrates a problem for read-replica enabled tables in which
+   the encoded region name (the MD5 hash) does not match between
+   the rowkey and the value. This problem is generally harmless
+   for normal operation, but can break other HBCK2 tools.
+
+   Run this command to determine if any regions are affected by
+   this bug and use the -f/--fix option to then correct any
+   affected regions.
 
  replication [OPTIONS] [<TABLENAME>...|-i <INPUT_FILE>...]
    Options:
@@ -262,9 +294,10 @@ Command:
    Each file contains <TABLENAME>, one per line. For example:
      $ HBCK2 replication -i fileName1 fileName2
 
- reportMissingRegionsInMeta <NAMESPACE|NAMESPACE:TABLENAME>...|-i 
<INPUT_FILE>...
+ reportMissingRegionsInMeta [<NAMESPACE|NAMESPACE:TABLENAME>...|
+      -i <INPUT_FILE>...]
    Options:
-    -i,--inputFiles  take one or more input files of namespace or table names
+    -i,--inputFiles  take one or more files of namespace or table names
    To be used when regions missing from hbase:meta but directories
    are present still in HDFS. Can happen if user has run _hbck1_
    'OfflineMetaRepair' against an hbase-2.x cluster. This is a CHECK only
@@ -290,13 +323,18 @@ Command:
    Returns list of missing regions for each table passed as parameter, or
    for each table on namespaces specified as parameter.
    If -i or --inputFiles is specified, pass one or more input file names.
-   Each file contains <NAMESPACE|NAMESPACE:TABLENAME>, one per line. For 
example:
+   Each file contains <NAMESPACE|NAMESPACE:TABLENAME>, one per line.
+   For example:
      $ HBCK2 reportMissingRegionsInMeta -i fileName1 fileName2
 
  setRegionState [<ENCODED_REGIONNAME> <STATE>|-i <INPUT_FILE>...]
-    Options:
-     -i,--inputFiles  take one or more input files of encoded region names and 
states
-  Possible region states:
+   Options:
+    -i,--inputFiles  take one or more input files of encoded region names
+   and states.
+   To set the replica region's state, it needs the primary region's
+   encoded regionname and replica id. The command will be
+   setRegionState <PRIMARY_ENCODED_REGIONNAME>,<replicaId> <STATE>
+   Possible region states:
     OFFLINE, OPENING, OPEN, CLOSING, CLOSED, SPLITTING, SPLIT,
     FAILED_OPEN, FAILED_CLOSE, MERGING, MERGED, SPLITTING_NEW,
     MERGING_NEW, ABNORMALLY_CLOSED
@@ -319,7 +357,7 @@ Command:
 
  setTableState [<TABLENAME> <STATE>|-i <INPUT_FILE>...]
    Options:
-     -i,--inputFiles  take one or more input files of table names and states
+    -i,--inputFiles  take one or more files of table names and states
    Possible table states: ENABLED, DISABLED, DISABLING, ENABLING
    To read current table state, in the hbase shell run:
      hbase> get 'hbase:meta', '<TABLENAME>', 'table:state'
@@ -333,9 +371,9 @@ Command:
    For example:
      $ HBCK2 setTableState -i fileName1 fileName2
 
- scheduleRecoveries <SERVERNAME>...|-i <INPUT_FILE>...
-  Options:
-     -i,--inputFiles  take one or more input files of server names
+ scheduleRecoveries [<SERVERNAME>...|-i <INPUT_FILE>...]
+   Options:
+    -i,--inputFiles  take one or more input files of server names
    Schedule ServerCrashProcedure(SCP) for list of RegionServers. Format
    server name as '<HOSTNAME>,<PORT>,<STARTCODE>' (See HBase UI/logs).
    Example using RegionServer 'a.example.org,29100,1540348649479':
@@ -347,22 +385,24 @@ Command:
    Each file contains <SERVERNAME>, one per line. For example:
      $ HBCK2 scheduleRecoveries -i fileName1 fileName2
 
- unassigns <ENCODED_REGIONNAME>...|-i <INPUT_FILE>...
+ unassigns [<ENCODED_REGIONNAME>...|-i <INPUT_FILE>...]
    Options:
     -o,--override  override ownership by another procedure
-     -i,--inputFiles  take one or more input files of encoded names
+    -i,--inputFiles  take one or more input files of encoded region names
    A 'raw' unassign that can be used even during Master initialization
    (if the -skip flag is specified). Skirts Coprocessors. Pass one or
    more encoded region names. 1588230740 is the hard-coded name for the
    hbase:meta region and de00010733901a05f5a2a3a382e27dd4 is an example
    of what a userspace encoded region name looks like. For example:
-     $ HBCK2 unassign 1588230740 de00010733901a05f5a2a3a382e27dd4
+     $ HBCK2 unassigns 1588230740 de00010733901a05f5a2a3a382e27dd4
    Returns the pid(s) of the created UnassignProcedure(s) or -1 if none.
-   If -i or --inputFiles is specified, pass one or more input file names.
-   Each file contains encoded region names, one per line. For example:
-     $ HBCK2 unassigns fileName1 -i fileName2
+
    SEE ALSO, org.apache.hbase.hbck1.OfflineMetaRepair, the offline
    hbase:meta tool. See the HBCK2 README for how to use.
+   If -i or --inputFiles is specified, pass one or more input file names.
+   Each file contains encoded region names, one per line. For example:
+     $ HBCK2 unassigns -i fileName1 fileName2
+
 ```
 Note that when you pass `bin/hbase` the `hbck` argument, it will by
 default use the shaded client to get to the targeted hbase cluster.
diff --git a/hbase-hbck2/src/main/java/org/apache/hbase/HBCK2.java 
b/hbase-hbck2/src/main/java/org/apache/hbase/HBCK2.java
index 0d060c7..c2125a7 100644
--- a/hbase-hbck2/src/main/java/org/apache/hbase/HBCK2.java
+++ b/hbase-hbck2/src/main/java/org/apache/hbase/HBCK2.java
@@ -591,6 +591,10 @@ public class HBCK2 extends Configured implements 
org.apache.hadoop.util.Tool {
     writer.println();
     usageGenerateMissingTableInfo(writer);
     writer.println();
+    usageRecoverUnknown(writer);
+    writer.println();
+    usageRegioninfoMismatch(writer);
+    writer.println();
     usageReplication(writer);
     writer.println();
     usageReportMissingRegionsInMeta(writer);
@@ -601,18 +605,15 @@ public class HBCK2 extends Configured implements 
org.apache.hadoop.util.Tool {
     writer.println();
     usageScheduleRecoveries(writer);
     writer.println();
-    usageRecoverUnknown(writer);
-    writer.println();
     usageUnassigns(writer);
     writer.println();
-    usageRegioninfoMismatch(writer);
-    writer.println();
     writer.close();
     return sw.toString();
   }
 
   private static void usageAddFsRegionsMissingInMeta(PrintWriter writer) {
-    writer.println(" " + ADD_MISSING_REGIONS_IN_META_FOR_TABLES + " [OPTIONS] 
[<NAMESPACE|"
+    writer.println(" " + ADD_MISSING_REGIONS_IN_META_FOR_TABLES + " 
[OPTIONS]");
+    writer.println("      [<NAMESPACE|"
       + "NAMESPACE:TABLENAME>...|-i <INPUTFILES>...]");
     writer.println("   Options:");
     writer.println("    -i,--inputFiles  take one or more files of namespace 
or table names");
@@ -681,7 +682,7 @@ public class HBCK2 extends Configured implements 
org.apache.hadoop.util.Tool {
     writer.println("    -o,--override   override if procedure is 
running/stuck");
     writer.println("    -r,--recursive  bypass parent and its children. SLOW! 
EXPENSIVE!");
     writer.println("    -w,--lockWait   milliseconds to wait before giving up; 
default=1");
-    writer.println("    -i,--inputFiles  take one or more files of pids");
+    writer.println("    -i,--inputFiles  take one or more input files of 
PID's");
     writer.println("   Pass one (or more) procedure 'pid's to skip to 
procedure finish. Parent");
     writer.println("   of bypassed procedure will also be skipped to the 
finish. Entities will");
     writer.println("   be left in an inconsistent state and will require 
manual fixup. May");
@@ -690,7 +691,7 @@ public class HBCK2 extends Configured implements 
org.apache.hadoop.util.Tool {
     writer.println("   to finish parent and children. This is SLOW, and 
dangerous so use");
     writer.println("   selectively. Does not always work.");
     writer.println("   If -i or --inputFiles is specified, pass one or more 
input file names.");
-    writer.println("   Each file contains pids, one per line. For example:");
+    writer.println("   Each file contains PID's, one per line. For example:");
     writer.println("     $ HBCK2 " + BYPASS + " -i fileName1 fileName2");
   }
 
@@ -698,7 +699,7 @@ public class HBCK2 extends Configured implements 
org.apache.hadoop.util.Tool {
     writer.println(" " + FILESYSTEM + " [OPTIONS] [<TABLENAME>...|-i 
<INPUT_FILE>...]");
     writer.println("   Options:");
     writer.println("    -f, --fix    sideline corrupt hfiles, bad links, and 
references.");
-    writer.println("    -i,--inputFiles  take one or more files of table 
names");
+    writer.println("    -i,--inputFiles  take one or more input files of table 
names");
     writer.println("   Report on corrupt hfiles, references, broken links, and 
integrity.");
     writer.println("   Pass '--fix' to sideline corrupt files and links. 
'--fix' does NOT");
     writer.println("   fix integrity issues; i.e. 'holes' or 'orphan' regions. 
Pass one or");
@@ -724,7 +725,7 @@ public class HBCK2 extends Configured implements 
org.apache.hadoop.util.Tool {
     writer.println("   catalog_janitor and hbck chore runs. If nothing to fix, 
run is a");
     writer.println("   noop. Otherwise, if 'HBCK Report' UI reports problems, 
a run of");
     writer.println("   " + FIX_META + " will clear up hbase:meta issues. See 
'HBase HBCK' UI");
-    writer.println("   for how to generate new execute.");
+    writer.println("   for how to generate new report.");
     writer.println("   SEE ALSO: " + REPORT_MISSING_REGIONS_IN_META);
   }
 
@@ -748,28 +749,31 @@ public class HBCK2 extends Configured implements 
org.apache.hadoop.util.Tool {
     writer.println("   .tableinfo file to the file system. Orphan tables can 
cause e.g.");
     writer.println("   ServerCrashProcedures to stuck, you might need to fix 
these still");
     writer.println("   after you generated the missing table info files. If no 
tables are ");
-    writer.println("   specified, .tableinfo will be genrated for all missing 
table descriptors.");
+    writer.println("   specified, .tableinfo will be generated for all missing 
table ");
+    writer.println("   descriptors.");
   }
 
   private static void usageReplication(PrintWriter writer) {
     writer.println(" " + REPLICATION + " [OPTIONS] [<TABLENAME>...|-i 
<INPUT_FILE>...]");
     writer.println("   Options:");
     writer.println("    -f, --fix    fix any replication issues found.");
-    writer.println("    -i,--inputFiles  take one or more files of table 
names");
+    writer.println("    -i,--inputFiles  take one or more input files of table 
names");
     writer.println("   Looks for undeleted replication queues and deletes them 
if passed the");
     writer.println("   '--fix' option. Pass a table name to check for 
replication barrier and");
     writer.println("   purge if '--fix'.");
     writer.println("   If -i or --inputFiles is specified, pass one or more 
input file names.");
-    writer.println("   Each file contains table names, one per line. For 
example:");
+    writer.println("   Each file contains <TABLENAME>, one per line. For 
example:");
     writer.println("     $ HBCK2 " + REPLICATION + " -i fileName1 fileName2");
   }
 
   private static void usageExtraRegionsInMeta(PrintWriter writer) {
     writer.println(" " + EXTRA_REGIONS_IN_META + " [<NAMESPACE|"
-      + "NAMESPACE:TABLENAME>...|-i <INPUT_FILE>...]");
+      + "NAMESPACE:TABLENAME>...|");
+    writer.println("      -i <INPUT_FILE>...]");
     writer.println("   Options:");
     writer.println("    -f, --fix    fix meta by removing all extra regions 
found.");
-    writer.println("    -i,--inputFiles  take one or more files of namespace 
or table names");
+    writer.println("    -i,--inputFiles  take one or more input files of 
namespace or");
+    writer.println("   table names");
     writer.println("   Reports regions present on hbase:meta, but with no 
related ");
     writer.println("   directories on the file system. Needs hbase:meta to be 
online. ");
     writer.println("   For each table name passed as parameter, performs 
diff");
@@ -784,7 +788,7 @@ public class HBCK2 extends Configured implements 
org.apache.hadoop.util.Tool {
     writer.println("   An example triggering extra regions report for tables 
'table_1'");
     writer.println("   and 'table_2', under default namespace:");
     writer.println("     $ HBCK2 " + EXTRA_REGIONS_IN_META + " default:table_1 
default:table_2");
-    writer.println("   An example triggering missing regions report for table 
'table_1'");
+    writer.println("   An example triggering extra regions report for table 
'table_1'");
     writer.println("   under default namespace, and for all tables from 
namespace 'ns1':");
     writer.println("     $ HBCK2 " + EXTRA_REGIONS_IN_META + " default:table_1 
ns1");
     writer.println("   Returns list of extra regions for each table passed as 
parameter, or");
@@ -797,9 +801,10 @@ public class HBCK2 extends Configured implements 
org.apache.hadoop.util.Tool {
 
   private static void usageReportMissingRegionsInMeta(PrintWriter writer) {
     writer.println(" " + REPORT_MISSING_REGIONS_IN_META + " [<NAMESPACE|"
-      + "NAMESPACE:TABLENAME>...|-i <INPUT_FILE>...]");
+      + "NAMESPACE:TABLENAME>...|");
+    writer.println("      -i <INPUT_FILE>...]");
     writer.println("   Options:");
-    writer.println("    -i,--inputFiles  take one or more files of encoded 
region names");
+    writer.println("    -i,--inputFiles  take one or more files of namespace 
or table names");
     writer.println("   To be used when regions missing from hbase:meta but 
directories");
     writer.println("   are present still in HDFS. Can happen if user has run 
_hbck1_");
     writer.println("   'OfflineMetaRepair' against an hbase-2.x cluster. This 
is a CHECK only");
@@ -817,17 +822,18 @@ public class HBCK2 extends Configured implements 
org.apache.hadoop.util.Tool {
     writer.println("   It accepts a combination of multiple namespace and 
tables. Table names");
     writer.println("   should include the namespace portion, even for tables 
in the default");
     writer.println("   namespace, otherwise it will assume as a namespace 
value.");
-    writer.println("   An example triggering missing regions execute for 
tables 'table_1'");
+    writer.println("   An example triggering missing regions report for tables 
'table_1'");
     writer.println("   and 'table_2', under default namespace:");
     writer.println("     $ HBCK2 reportMissingRegionsInMeta default:table_1 
default:table_2");
-    writer.println("   An example triggering missing regions execute for table 
'table_1'");
+    writer.println("   An example triggering missing regions report for table 
'table_1'");
     writer.println("   under default namespace, and for all tables from 
namespace 'ns1':");
     writer.println("     $ HBCK2 reportMissingRegionsInMeta default:table_1 
ns1");
     writer.println("   Returns list of missing regions for each table passed 
as parameter, or");
     writer.println("   for each table on namespaces specified as parameter.");
     writer.println("   If -i or --inputFiles is specified, pass one or more 
input file names.");
     writer.println(
-      "   Each file contains <NAMESPACE|NAMESPACE:TABLENAME>, one per line.);" 
+ "For example:");
+      "   Each file contains <NAMESPACE|NAMESPACE:TABLENAME>, one per line.");
+    writer.println("   For example:");
     writer.println("     $ HBCK2 " + REPORT_MISSING_REGIONS_IN_META + " -i 
fileName1 fileName2");
   }
 
@@ -836,10 +842,11 @@ public class HBCK2 extends Configured implements 
org.apache.hadoop.util.Tool {
       .println(" " + SET_REGION_STATE + " [<ENCODED_REGIONNAME> <STATE>" + 
"|-i <INPUT_FILE>...]");
     writer.println("   Options:");
     writer.println(
-      "    -i,--inputFiles  take one or more files of encoded region names " + 
"and states");
+      "    -i,--inputFiles  take one or more input files of encoded region 
names ");
+    writer.println("   and states.");
     writer.println("   To set the replica region's state, it needs the primary 
region's ");
     writer.println("   encoded regionname and replica id. The command will be 
");
-    writer.println(" " + SET_REGION_STATE + " 
<PRIMARY_ENCODED_REGIONNAME>,<replicaId> <STATE>");
+    writer.println("   " + SET_REGION_STATE + " 
<PRIMARY_ENCODED_REGIONNAME>,<replicaId> <STATE>");
     writer.println("   Possible region states:");
     writer.println("    OFFLINE, OPENING, OPEN, CLOSING, CLOSED, SPLITTING, 
SPLIT,");
     writer.println("    FAILED_OPEN, FAILED_CLOSE, MERGING, MERGED, 
SPLITTING_NEW,");
@@ -858,7 +865,8 @@ public class HBCK2 extends Configured implements 
org.apache.hadoop.util.Tool {
     writer.println("   Returns \"0\" if region state changed and \"1\" 
otherwise.");
     writer.println("   If -i or --inputFiles is specified, pass one or more 
input file names.");
     writer.println(
-      "   Each file contains <ENCODED_REGIONNAME> <STATE>, one pair per 
line.);" + "For example:");
+      "   Each file contains <ENCODED_REGIONNAME> <STATE>, one pair per 
line.");
+    writer.println("   For example:");
     writer.println("     $ HBCK2 " + SET_REGION_STATE + " -i fileName1 
fileName2");
   }
 
@@ -877,14 +885,15 @@ public class HBCK2 extends Configured implements 
org.apache.hadoop.util.Tool {
     writer.println("   Returns whatever the previous table state was.");
     writer.println("   If -i or --inputFiles is specified, pass one or more 
input file names.");
     writer
-      .println("   Each file contains <TABLENAME> <STATE>, one pair per 
line.);" + "For example:");
+      .println("   Each file contains <TABLENAME> <STATE>, one pair per 
line.");
+    writer.println("   For example:");
     writer.println("     $ HBCK2 " + SET_TABLE_STATE + " -i fileName1 
fileName2");
   }
 
   private static void usageScheduleRecoveries(PrintWriter writer) {
     writer.println(" " + SCHEDULE_RECOVERIES + " [<SERVERNAME>...|-i 
<INPUT_FILE>...]");
     writer.println("   Options:");
-    writer.println("    -i,--inputFiles  take one or more files of server 
names");
+    writer.println("    -i,--inputFiles  take one or more input files of 
server names");
     writer.println("   Schedule ServerCrashProcedure(SCP) for list of 
RegionServers. Format");
     writer.println("   server name as '<HOSTNAME>,<PORT>,<STARTCODE>' (See 
HBase UI/logs).");
     writer.println("   Example using RegionServer 
'a.example.org,29100,1540348649479':");
@@ -893,7 +902,7 @@ public class HBCK2 extends Configured implements 
org.apache.hadoop.util.Tool {
     writer.println("   no procedure created (see master logs for why not).");
     writer.println("   Command support added in hbase versions 2.0.3, 2.1.2, 
2.2.0 or newer.");
     writer.println("   If -i or --inputFiles is specified, pass one or more 
input file names.");
-    writer.println("   Each file contains server names, one per line. For 
example:");
+    writer.println("   Each file contains <SERVERNAME>, one per line. For 
example:");
     writer.println("     $ HBCK2 " + SCHEDULE_RECOVERIES + " -i fileName1 
fileName2");
   }
 
@@ -911,7 +920,7 @@ public class HBCK2 extends Configured implements 
org.apache.hadoop.util.Tool {
     writer.println(" " + UNASSIGNS + " [<ENCODED_REGIONNAME>...|-i 
<INPUT_FILE>...]");
     writer.println("   Options:");
     writer.println("    -o,--override  override ownership by another 
procedure");
-    writer.println("    -i,--inputFiles  take one or more files of encoded 
region names");
+    writer.println("    -i,--inputFiles  take one or more input files of 
encoded region names");
     writer.println("   A 'raw' unassign that can be used even during Master 
initialization");
     writer.println("   (if the -skip flag is specified). Skirts Coprocessors. 
Pass one or");
     writer.println("   more encoded region names. 1588230740 is the hard-coded 
name for the");

Reply via email to