Details
-
Task
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.0.0
-
None
-
Incompatible change
-
Description
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:
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
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.
Attachments
Attachments
Issue Links
- supercedes
-
HBASE-9756 HBase shell help info would be better to display only when usage error instead of any exception
- Closed