Sean Busbey created HBASE-20270:
-----------------------------------

             Summary: Turn off command help that follows all errors in shell
                 Key: HBASE-20270
                 URL: https://issues.apache.org/jira/browse/HBASE-20270
             Project: HBase
          Issue Type: Task
          Components: shell
    Affects Versions: 2.0.0
            Reporter: Sean Busbey
             Fix For: 2.0.0


Right now if a shell command gives an error, any error, it then echos the 
command help. It makes it harder to see the actual error text and is annoying.

example:

{code}
                                                                                
                                                                                
                       
hbase(main):007:0> create 'test:a_table', 'family', { NUMREGIONS => 20, 
SPLITALGO => 'HexStringSplit'}

ERROR: Unknown namespace test!

Creates a table. Pass a table name, and a set of column family
specifications (at least one), and, optionally, table configuration.
Column specification can be a simple string (name), or a dictionary
(dictionaries are described below in main help output), necessarily
including NAME attribute.
Examples:

Create a table with namespace=ns1 and table qualifier=t1
  hbase> create 'ns1:t1', {NAME => 'f1', VERSIONS => 5}

Create a table with namespace=default and table qualifier=t1
  hbase> create 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'}
  hbase> # The above in shorthand would be the following:
  hbase> create 't1', 'f1', 'f2', 'f3'
  hbase> create 't1', {NAME => 'f1', VERSIONS => 1, TTL => 2592000, BLOCKCACHE 
=> true}
  hbase> create 't1', {NAME => 'f1', CONFIGURATION => 
{'hbase.hstore.blockingStoreFiles' => '10'}}
  hbase> create 't1', {NAME => 'f1', IS_MOB => true, MOB_THRESHOLD => 1000000, 
MOB_COMPACT_PARTITION_POLICY => 'weekly'}

Table configuration options can be put at the end.
Examples:

  hbase> create 'ns1:t1', 'f1', SPLITS => ['10', '20', '30', '40']
  hbase> create 't1', 'f1', SPLITS => ['10', '20', '30', '40']
  hbase> create 't1', 'f1', SPLITS_FILE => 'splits.txt', OWNER => 'johndoe'
  hbase> create 't1', {NAME => 'f1', VERSIONS => 5}, METADATA => { 'mykey' => 
'myvalue' }
  hbase> # Optionally pre-split the table into NUMREGIONS, using
  hbase> # SPLITALGO ("HexStringSplit", "UniformSplit" or classname)
  hbase> create 't1', 'f1', {NUMREGIONS => 15, SPLITALGO => 'HexStringSplit'}
  hbase> create 't1', 'f1', {NUMREGIONS => 15, SPLITALGO => 'HexStringSplit', 
REGION_REPLICATION => 2, CONFIGURATION => 
{'hbase.hregion.scan.loadColumnFamiliesOnDemand' => 'true'}}
  hbase> create 't1', {NAME => 'f1', DFS_REPLICATION => 1}

You can also keep around a reference to the created table:

  hbase> t1 = create 't1', 'f1'

Which gives you a reference to the table named 't1', on which you can then
call methods.

Took 0.0221 seconds                                                             
                                                                                
                                            
hbase(main):008:0> create_namespace 'test'
Took 0.2554 seconds                                                             
                                                                                
                                            
hbase(main):009:0> create 'test:a_table', 'family', { NUMREGIONS => 20, 
SPLITALGO => 'HexStringSplit'}
Created table test:a_table
Took 1.2264 seconds                     
{code}

I was trying to make a table in the test namespace before making the namespace. 
Much faster to recognize and move on when the error text isn't followed by 80x 
the text.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to