HBase Commands

Housekeeping

First make sure HBase is running, with the following command in $HBASE_HOME: $ ./bin/start-hbase.sh
The HBase Shell is a Ruby script in ${HBASE_HOME}/bin/hirb.rb and to start the shell use: $ hbase shell
You can get an overview of all tables present in HBase using the list command (or restrict with list 'test.*').
To get a grip of how a certain table is structured use the describe command: describe 'test_table'
To check how the cluster is doing use: status 'simple' | 'summary' | 'detailed' (note that these are three
alternative parameters, providing different level of details; only specify one of them).
If you need to shut down the cluster use shutdown and to exit the shell use exit
1

Data Definition

create … to create a table. Pass table name, a dictionary of specifications
 per column family, and optionally a dictionary of table configuration.
Example create 'test_table', 'cf1', 'cf2'
alter … to alter the column family (CF) schema of a table. Note: the table
 must be disabled.
Examples
 To add the 'cf1' column family in table 't1':
 alter 't1', NAME => 'f1'
 To delete the 'cf2' column family from table 't2':
 alter 't2', {NAME => 'cf2', METHOD => 'delete'}
drop … to drop a table. Note: the table must be disabled.
disable … to disable a table, for example to drop it or to alter the schema.
enable … to enable a table after altering the CF schema.

Data Manipulation

put … to put a 'value' into at specified table/row/column combination,
 also known as a 'cell' in HBase.
Example put 't1', 'row-key-1', 'cf1:col2', 'value'
delete … to mark a cell value as deleted. Note: deletes must match the
 deleted cell's coordinates (table/row/column) exactly. When
 scanning, a delete cell suppresses older versions.
Example delete 't1', 'row-key-1', 'cf1:col2'

Query

count … to count the number of
 rows in a table. Note: this
 operation may take a long
 time.
Example count 'my_table'
get … to retrieve a single cell.
Examples
 To retrieve a cell with a
 certain row key:
 get 't1', 'rowkey-1'
 To retrieve a certain CF of a
 cell with a certain row key:
 get 't1', 'rowkey-1',
COLUMN => 'cf1'
 To retrieve a certain version
 of a cell with a certain row
 key:
 get 't1', 'rowkey-1',
TIMESTAMP =>
1371113904834
scan … to scan a table. Scanner
 specifications may include
 one or more of the following:
 FILTER, COLUMNS, LIMIT,
 STARTROW, STOPROW, or
 TIMESTAMP. If no COLUMNS
 are specified, all columns
 will be scanned. To scan all
 columns of a column family,
 leave the qualifier empty as
 in 'col_family:'
Examples
 See the next page, in the
 walk-through example

Walk-through Example

 $ hbase shell
hbase> create 'orders', 'client', 'product'

hbase> describe 'orders'

hbase> put 'orders', 'joe_2013-01-13', 'client:name', 'Joe'

hbase> put 'orders', 'joe_2013-01-13', 'client:address', 'Hillroad 1, SF'

hbase> put 'orders', 'joe_2013-01-13', 'product:title', 'iPhone 5'

hbase> put 'orders', 'joe_2013-01-13', 'product:delivery', '2013-01-13'

hbase> scan 'orders'

hbase> put 'orders', 'jane_2013-02-05', 'client:name', 'Jane'

hbase> put 'orders', 'jane_2013-02-05', 'client:address', 'Sunset Drive 42, NY'

hbase> put 'orders', 'jane_2013-02-05', 'product:title', 'Samsung S4'

hbase> put 'orders', 'jane_2013-02-05', 'product:delivery', '2013-05-02'

hbase> get 'orders', 'jane_2013-02-05', {COLUMN => 'product:'}

hbase> scan 'orders', FILTER => "ValueFilter(=,'substring:Sunset')"

hbase> scan 'orders', { COLUMNS => ['client'], FILTER =>
 "ValueFilter(=,'substring:road')" }

hbase> scan 'orders', { COLUMNS => ['product'], FILTER =>
 "ValueFilter(=,'substring:2013-')" }

hbase> disable 'orders'

hbase> drop 'orders'

hbase> list

hbase> exit
Note: This walk-through example creates a table orders, adds some data (via put) and the retrieves the data using
get and scan. Finally, the table is removed again, using disable and drop.

Other Useful Stuff

To execute HBase commands scripting-style, use: $ {HBASE_HOME}/bin/hbase shell PATH_TO_SCRIPT For a comprehensive reference on filters (to be used in FILTER => "..." within scan) see the Jira issue HBASE-4176 'Exposing HBase Filters to the Thrift API' at https://issues.apache.org/jira/browse/HBASE-4176 which has a MS Word document attached: https://issues.apache.org/jira/secure/attachment/12490608/Filter%20Language %283%29.docx Also, regarding filters, note that the following compare operators are available:

▪ LESS … <
▪ LESS_OR_EQUAL … <=
▪ EQUAL … =
▪ NOT_EQUAL … !=
▪ GREATER_OR_EQUAL … >=
▪ GREATER … >
▪ NO_OP

results matching ""

    No results matching ""