进入hbase shell
[root@ambari ~]# hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 1.1.2.2.6.4.0-91, r2a88e694af7238290a5747f963a4fa0079c55bf9, Thu Jan 4 10:42:39 UTC 2018
查看当前用户
hbase(main):007:0> whoami
root (auth:SIMPLE)
groups: root
查看当前运行服务器状态
hbase(main):001:0> status
1 active master, 0 backup masters, 3 servers, 0 dead, 1.0000 average load
查看版本
hbase(main):002:0> version
1.1.2.2.6.4.0-91, r2a88e694af7238290a5747f963a4fa0079c55bf9, Thu Jan 4 10:42:39 UTC 2018
查看库中所有表
hbase(main):003:0> list
TABLE
hb_data_analysis:mrt_ipad_salesperformance
1 row(s) in 1.4480 seconds=> ["hb_data_analysis:mrt_ipad_salesperformance"]
判断表是否存在
hbase(main):010:0> exists 'mrt_ipad_salesperformance'
Table mrt_ipad_salesperformance does not exist
0 row(s) in 0.0080 seconds
判断表是否enable
hbase(main):021:0> is_enabled 'hb_data_analysis:mrt_ipad_salesperformance'
true
0 row(s) in 0.0150 seconds
判断表是否disable
hbase(main):029:0> is_disabled 'hb_data_analysis:mrt_ipad_salesperformance'
false
0 row(s) in 0.0140 seconds
命名空间可以被创建、移除、修改。
表和命名空间的隶属关系在在创建表时决定,通过以下格式指定:
<namespace>:<table>
查看当前所有命名空间
hbase(main):041:0> list_namespace
NAMESPACE
default
hb_data_analysis
hbase
3 row(s) in 0.5210 seconds
预定义的命名空间
有两个系统内置的预定义命名空间:
hbase:系统命名空间,用于包含hbase的内部表
default:所有未指定命名空间的表都自动进入该命名空间
Example:指定命名空间和默认命名空间
列出某个命名空间所有表
hbase(main):042:0> list_namespace_tables 'hb_data_analysis'
TABLE
mrt_ipad_salesperformance
1 row(s) in 0.0590 seconds
创建命名空间
hbase(main):031:0> create_namespace 'test_ns'
0 row(s) in 2.9120 seconds
创建表并查看
语法:create <table>, {NAME => <family>, VERSIONS => <VERSIONS>}
具体命令:
create 't1', {NAME => 'f1', VERSIONS => 5}
create 't1', {NAME => 'f1'}, {NAME => 'f2'}, {NAME => 'f3'}
省略模式建立列族:
create 't1', 'f1', 'f2', 'f3'
指定每个列族参数:
create 't1', {NAME => 'f1', VERSIONS => 1, TTL => 2592000, BLOCKCACHE => true}
create 't1', 'f1', {SPLITS => ['10', '20', '30', '40']}
hbase(main):032:0> create 'test_ns:test_table','column_famaly','column_famaly1','column_famaly2'
0 row(s) in 15.5060 seconds=> Hbase::Table - test_ns:test_table
hbase(main):033:0> list
TABLE
hb_data_analysis:mrt_ipad_salesperformance
test_ns:test_table
2 row(s) in 0.0040 seconds=> ["hb_data_analysis:mrt_ipad_salesperformance", "test_ns:test_table"]
向表中插入数据并显示
hbase(main):045:0> put 'test_ns:test_table', '001','column_famaly:name','Tom'
0 row(s) in 0.3730 secondshbase(main):046:0> put 'test_ns:test_table', '001','column_famaly1:gender','man'
0 row(s) in 0.0130 secondshbase(main):047:0> put 'test_ns:test_table', '001','column_famaly2:chinese','90'
0 row(s) in 0.0110 secondshbase(main):048:0> put 'test_ns:test_table', '001','column_famaly2:math','91'
0 row(s) in 0.0100 secondshbase(main):049:0> scan 'test_ns:test_table'
ROW COLUMN+CELL
001 column=column_famaly:name, timestamp=1545035218208, value=Tom
001 column=column_famaly1:gender, timestamp=1545035223699, value=man
001 column=column_famaly2:chinese, timestamp=1545035229267, value=90
001 column=column_famaly2:math, timestamp=1545035234274, value=91
1 row(s) in 0.1110 seconds
按照rowkey查询数据
hbase(main):050:0> get 'test_ns:test_table','001'
COLUMN CELL
column_famaly:name timestamp=1545035218208, value=Tom
column_famaly1:gender timestamp=1545035223699, value=man
column_famaly2:chinese timestamp=1545035229267, value=90
column_famaly2:math timestamp=1545035234274, value=91
4 row(s) in 0.1970 seconds
修改表结构 - 删除列族
先disable 表,然后修改表,最后enable表, 区分大小写
hbase(main):051:0> disable 'test_ns:test_table'
0 row(s) in 4.3510 secondshbase(main):052:0> alter 'test_ns:test_table',{NAME=>'column_famaly1',METHOD=>'delete'}
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 4.1490 secondshbase(main):053:0> enable 'test_ns:test_table'
0 row(s) in 4.4070 seconds
表重命名
停用表 - 为表创建快照 -根据快照复制新表并赋值数据 -删除快照 - 删除旧表
hbase(main):054:0> disable 'test_ns:test_table'
0 row(s) in 4.3310 secondshbase(main):055:0> snapshot 'test_ns:test_table', 'test_tableSnapshot'
0 row(s) in 3.2700 secondshbase(main):056:0> clone_snapshot 'test_tableSnapshot', 'test_ns:test1_table'
0 row(s) in 4.8110 secondshbase(main):057:0> delete_snapshot 'test_tableSnapshot'
0 row(s) in 0.1030 secondshbase(main):058:0> drop 'test_ns:test_table'
0 row(s) in 2.3120 seconds
按照列名查询
hbase(main):059:0> scan 'test_ns:test1_table',{COLUMNS=>'column_famaly:name'}
ROW COLUMN+CELL
001 column=column_famaly:name, timestamp=1545035218208, value=Tom
1 row(s) in 0.1250 seconds
删除命名空间, 需要先删除该命名空间下的所有的表,先disable table 再drop table
hbase(main):034:0> disable 'test_ns:test_table'
0 row(s) in 4.4930 secondshbase(main):035:0> drop 'test_ns:test_table'
0 row(s) in 2.4490 seconds
查询两个rowkey之间的数据
hbase(main):060:0> scan 'test_ns:test1_table',{STARTROW=>'001',STOPROW=>'002'}
ROW COLUMN+CELL
001 column=column_famaly:name, timestamp=1545035218208, value=Tom
001 column=column_famaly2:chinese, timestamp=1545035229267, value=90
001 column=column_famaly2:math, timestamp=1545035234274, value=91
1 row(s) in 0.0180 seconds
最后删除命名空间
hbase(main):040:0> drop_namespace 'test_ns'
0 row(s) in 0.2370 seconds