HBASE-15508 Add command for exporting snapshot in hbase command script (Yufeng Jiang)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/9725a5bd Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/9725a5bd Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/9725a5bd Branch: refs/heads/branch-1.2 Commit: 9725a5bd737116198795f35259aee2531779e610 Parents: e60f93d Author: Matteo Bertozzi <matteo.berto...@cloudera.com> Authored: Wed Mar 23 10:38:13 2016 -0700 Committer: Matteo Bertozzi <matteo.berto...@cloudera.com> Committed: Wed Mar 23 10:44:39 2016 -0700 ---------------------------------------------------------------------- bin/hbase | 33 ++++++++++++++++---- .../hadoop/hbase/snapshot/ExportSnapshot.java | 4 +-- .../hadoop/hbase/snapshot/SnapshotInfo.java | 4 +-- 3 files changed, 31 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/9725a5bd/bin/hbase ---------------------------------------------------------------------- diff --git a/bin/hbase b/bin/hbase index c920f32..4241646 100755 --- a/bin/hbase +++ b/bin/hbase @@ -71,19 +71,22 @@ if [ -d "${HBASE_HOME}/target" ]; then in_dev_env=true fi +read -d '' options_string << EOF +Options: + --config DIR Configuration direction to use. Default: ./conf + --hosts HOSTS Override the list in 'regionservers' file + --auth-as-server Authenticate to ZooKeeper using servers configuration +EOF # if no args specified, show usage if [ $# = 0 ]; then echo "Usage: hbase [<options>] <command> [<args>]" - echo "Options:" - echo " --config DIR Configuration direction to use. Default: ./conf" - echo " --hosts HOSTS Override the list in 'regionservers' file" - echo " --auth-as-server Authenticate to ZooKeeper using servers configuration" + echo "$options_string" echo "" echo "Commands:" echo "Some commands take arguments. Pass no args or -h for usage." echo " shell Run the HBase shell" echo " hbck Run the hbase 'fsck' tool" - echo " snapshot Create a new snapshot of a table" + echo " snapshot Tool for managing snapshots" echo " snapshotinfo Tool for dumping snapshot information" echo " wal Write-ahead-log analyzer" echo " hfile Store file analyzer" @@ -316,8 +319,26 @@ elif [ "$COMMAND" = "zkcli" ] ; then elif [ "$COMMAND" = "upgrade" ] ; then CLASS="org.apache.hadoop.hbase.migration.UpgradeTo96" elif [ "$COMMAND" = "snapshot" ] ; then - CLASS="org.apache.hadoop.hbase.snapshot.CreateSnapshot" + SUBCOMMAND=$1 + shift + if [ "$SUBCOMMAND" = "create" ] ; then + CLASS="org.apache.hadoop.hbase.snapshot.CreateSnapshot" + elif [ "$SUBCOMMAND" = "info" ] ; then + CLASS="org.apache.hadoop.hbase.snapshot.SnapshotInfo" + elif [ "$SUBCOMMAND" = "export" ] ; then + CLASS="org.apache.hadoop.hbase.snapshot.ExportSnapshot" + else + echo "Usage: hbase [<options>] snapshot <subcommand> [<args>]" + echo "$options_string" + echo "" + echo "Subcommands:" + echo " create Create a new snapshot of a table" + echo " info Tool for dumping snapshot information" + echo " export Export an existing snapshot" + exit 1 + fi elif [ "$COMMAND" = "snapshotinfo" ] ; then + >&2 echo "'hbase snapshotinfo' is deprecated and will not be available in HBase 2. Please use 'hbase snapshot info' instead." CLASS="org.apache.hadoop.hbase.snapshot.SnapshotInfo" elif [ "$COMMAND" = "master" ] ; then CLASS='org.apache.hadoop.hbase.master.HMaster' http://git-wip-us.apache.org/repos/asf/hbase/blob/9725a5bd/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/ExportSnapshot.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/ExportSnapshot.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/ExportSnapshot.java index f1c833e..eb1d0e5 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/ExportSnapshot.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/ExportSnapshot.java @@ -1062,11 +1062,11 @@ public class ExportSnapshot extends Configured implements Tool { System.err.println(" -bandwidth Limit bandwidth to this value in MB/second."); System.err.println(); System.err.println("Examples:"); - System.err.println(" hbase " + getClass().getName() + " \\"); + System.err.println(" hbase snapshot export \\"); System.err.println(" -snapshot MySnapshot -copy-to hdfs://srv2:8082/hbase \\"); System.err.println(" -chuser MyUser -chgroup MyGroup -chmod 700 -mappers 16"); System.err.println(); - System.err.println(" hbase " + getClass().getName() + " \\"); + System.err.println(" hbase snapshot export \\"); System.err.println(" -snapshot MySnapshot -copy-from hdfs://srv2:8082/hbase \\"); System.err.println(" -copy-to hdfs://srv1:50070/hbase \\"); System.exit(1); http://git-wip-us.apache.org/repos/asf/hbase/blob/9725a5bd/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotInfo.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotInfo.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotInfo.java index 96ef77d..2783215 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotInfo.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotInfo.java @@ -460,7 +460,7 @@ public final class SnapshotInfo extends Configured implements Tool { } private void printUsageAndExit() { - System.err.printf("Usage: bin/hbase %s [options]%n", getClass().getName()); + System.err.printf("Usage: bin/hbase snapshot info [options]%n"); System.err.println(" where [options] are:"); System.err.println(" -h|-help Show this help and exit."); System.err.println(" -remote-dir Root directory that contains the snapshots."); @@ -472,7 +472,7 @@ public final class SnapshotInfo extends Configured implements Tool { System.err.println(" -schema Describe the snapshotted table."); System.err.println(); System.err.println("Examples:"); - System.err.println(" hbase " + getClass() + " \\"); + System.err.println(" hbase snapshot info \\"); System.err.println(" -snapshot MySnapshot -files"); System.exit(1); }