1、安装环境参考
http://blog.csdn.net/bahaidong/article/details/42121095
2、启动(集群模式)
启动master上的hbase
[hadoop@master hbase-0.99.2]$ bin/start-hbase.sh
进入hbase shell
[hadoop@master hbase-0.99.2]$ bin/hbase shell关闭
[hadoop@master hbase-0.99.2]$ bin/stop-hbase.sh
3、常见命令
1)创建表table,必须指定表明和列族(You must specify the table name and the ColumnFamily name),除了命令必须加上引号
hbase(main):002:0> create 'test', 'cf'
0 row(s) in 0.7500 seconds
=> Hbase::Table - test
2)查询表信息
hbase(main):001:0> list 'test'
TABLE
test
1 row(s) in 3.5690 seconds
=> ["test"]
3)插入数据使用put命令(如果键存在则更新数据否则插入数据)
hbase(main):002:0> put 'test','row1','cf:a','value1'
0 row(s) in 0.5370 seconds
hbase(main):003:0> put 'test','row1','cf:b','value2'
0 row(s) in 0.0340 seconds
hbase(main):004:0> put 'test','row1','cf:c','value3'
0 row(s) in 0.0140 seconds
4)查询表用scan命令
hbase(main):011:0> scan 'test'
ROW COLUMN+CELL
row1 column=cf:a, timestamp=1426556764314, value=value1
row2 column=cf:b, timestamp=1426557114612, value=value2
row3 column=cf:c, timestamp=1426557124384, value=value3
3 row(s) in 0.0470 seconds
5)查询一条数据使用get命令
hbase(main):012:0> get 'test','row1'
COLUMN CELL
cf:a timestamp=1426556764314, value=value1
1 row(s) in 0.0670 seconds
6)删除表首先停用表disable(enable启用表)命令,然后用drop删除表
hbase(main):013:0> disable 'test'
0 row(s) in 3.8760 seconds
hbase(main):014:0> enable 'test'
0 row(s) in 0.9180 seconds
hbase(main):015:0> disable 'test'
0 row(s) in 1.3960 seconds
hbase(main):016:0> drop 'test'
0 row(s) in 0.4010 seconds
7)退出habse使用quit命令
hbase(main):017:0> quit
8)创建namespace
#Create a namespace
hbase(main):008:0> create_namespace 'my_ns'
0 row(s) in 0.4390 seconds
#create my_table in my_ns namespace
hbase(main):009:0> create 'my_ns:my_table' ,'fam'
0 row(s) in 2.6710 seconds
#drop namespace
hbase(main):011:0> drop_namespace 'my_ns'
9)显示表的详细信息
hbase(main):003:0> describe 'users'
10)查询表中有多少行:
hbase(main):019:0>count 'member'11)查询前多少行数据
hbase(main):012:0> scan 'ap_info_top_day',{LIMIT=>20}
- 权限管理
1)分配权限# 语法 : grant <user> <permissions> <table> <column family> <column qualifier> 参数后面用逗号分隔
# 权限用五个字母表示: "RWXCA".
# READ('R'), WRITE('W'), EXEC('X'), CREATE('C'), ADMIN('A')
# 例如,给用户‘test'分配对表t1有读写的权限,
hbase(main)> grant
'test'
,
'RW'
,
't1'
2)查看权限
# 语法:user_permission <table>
# 例如,查看表t1的权限列表
hbase(main)> user_permission
't1'
3)收回权限
# 与分配权限类似,语法:revoke <user> <table> <column family> <column qualifier>
# 例如,收回test用户在表t1上的权限
hbase(main)> revoke
'test'
,
't1'
- 表数据的增删改查
1)添加数据# 语法:put <table>,<rowkey>,<family:column>,<value>,<timestamp>
# 例如:给表t1的添加一行记录:rowkey是rowkey001,family name:f1,column name:col1,value:value01,timestamp:系统默认
hbase(main)> put
't1'
,
'rowkey001'
,
'f1:col1'
,
'value01'
用法比较单一。
2)查询数据
a)查询某行记录# 语法:get <table>,<rowkey>,[<family:column>,....]
# 例如:查询表t1,rowkey001中的f1下的col1的值
hbase(main)> get
't1'
,
'rowkey001'
,
'f1:col1'
# 或者:
hbase(main)> get
't1'
,
'rowkey001'
, {COLUMN=>
'f1:col1'
}
# 查询表t1,rowke002中的f1下的所有列值
hbase(main)> get
't1'
,
'rowkey001'
b)扫描表
# 语法:scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num}
# 另外,还可以添加STARTROW、TIMERANGE和FITLER等高级功能
# 例如:扫描表t1的前5条数据
hbase(main)> scan
't1'
,{LIMIT=>5}
c)查询表中的数据行数
# 语法:count <table>, {INTERVAL => intervalNum, CACHE => cacheNum}
# INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度
# 例如,查询表t1中的行数,每100条显示一次,缓存区为500
hbase(main)> count
't1'
, {INTERVAL => 100, CACHE => 500}
3)删除数据
a )删除行中的某个列值# 语法:delete <table>, <rowkey>, <family:column> , <timestamp>,必须指定列名
# 例如:删除表t1,rowkey001中的f1:col1的数据
hbase(main)> delete
't1'
,
'rowkey001'
,
'f1:col1'
注:将删除改行f1:col1列所有版本的数据
b )删除行# 语法:deleteall <table>, <rowkey>, <family:column> , <timestamp>,可以不指定列名,删除整行数据
# 例如:删除表t1,rowk001的数据
hbase(main)> deleteall
't1'
,
'rowkey001'
c)删除表中的所有数据
# 语法: truncate <table>
# 其具体过程是:disable table -> drop table -> create table
# 例如:删除表t1的所有数据
hbase(main)> truncate
't1'