You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Jerry He (JIRA)" <ji...@apache.org> on 2013/07/01 19:56:20 UTC
[jira] [Commented] (HBASE-8798) Fix a minor bug in shell command
with clone_snapshot table error
[ https://issues.apache.org/jira/browse/HBASE-8798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13697010#comment-13697010 ]
Jerry He commented on HBASE-8798:
---------------------------------
Here is the output after the fix.
hbase(main):001:0> list
TABLE
TestTable
1 row(s) in 1.1350 seconds
=> ["TestTable"]
hbase(main):002:0> list_snapshots
SNAPSHOT TABLE + CREATION TIME
mysnapshot1 TestTable (Mon Jun 24 13:29:00 -0700 2013)
1 row(s) in 0.2040 seconds
=> ["mysnapshot1"]
hbase(main):003:0> clone_snapshot 'mysnapshot1', 'TestTable'
ERROR: Table already exists: *TestTable!*
Here is some help for this command:
Create a new table by cloning the snapshot content.
There're no copies of data involved.
And writing on the newly created table will not influence the snapshot data.
Examples:
hbase> clone_snapshot 'snapshotName', 'tableName'
> Fix a minor bug in shell command with clone_snapshot table error
> ----------------------------------------------------------------
>
> Key: HBASE-8798
> URL: https://issues.apache.org/jira/browse/HBASE-8798
> Project: HBase
> Issue Type: Bug
> Components: shell, snapshots
> Affects Versions: 0.94.8, 0.95.1
> Reporter: Jerry He
> Assignee: Jerry He
> Priority: Minor
> Attachments: HBASE-8798-trunk.patch
>
>
> In HBase shell, the syntax for clone_snapshot is:
> hbase> clone_snapshot 'snapshotName', 'tableName'
> If the target table already exists, we'll get an error.
> For example:
> ------------------
> hbase(main):011:0> clone_snapshot 'mysnapshot1', 'TestTable'
> ERROR: Table already exists: mysnapshot1!
> Here is some help for this command:
> Create a new table by cloning the snapshot content.
> There're no copies of data involved.
> And writing on the newly created table will not influence the snapshot data.
> Examples:
> hbase> clone_snapshot 'snapshotName', 'tableName'
> ----------------------
> The bug is in the ERROR message:
> *ERROR: Table already exists: mysnapshot1!*
> We should output the table name, not the snapshot name.
> Currently, in command.rb, we have the output fixed as args.first for TableExistsException:
> {code}
> def translate_hbase_exceptions(*args)
> yield
> rescue org.apache.hadoop.hbase.exceptions.TableNotFoundException
> raise "Unknown table #{args.first}!"
> rescue org.apache.hadoop.hbase.exceptions.NoSuchColumnFamilyException
> valid_cols = table(args.first).get_all_columns.map { |c| c + '*' }
> raise "Unknown column family! Valid column names: #{valid_cols.join(", ")}"
> rescue org.apache.hadoop.hbase.exceptions.TableExistsException
> raise "Table already exists: #{args.first}!"
> end
> {code}
> This is fine with commands like 'create tableName ...' but not 'clone_snapshot snapshotName tableName'.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira