关于HBase

[hdfs@hadoop1 root]$ hbase
Usage: hbase [<options>] <command> [<args>]
Options:
--config DIR Configuration direction to use. Default: ./conf
--hosts HOSTS Override the list in 'regionservers' file

Commands:
Some commands take arguments. Pass no args or -h for usage.
shell Run the HBase shell
hbck Run the hbase 'fsck' tool
hlog Write-ahead-log analyzer
hfile Store file analyzer
zkcli Run the ZooKeeper shell
upgrade Upgrade hbase
master Run an HBase HMaster node
regionserver Run an HBase HRegionServer node
zookeeper Run a Zookeeper server
rest Run an HBase REST server
thrift Run the HBase Thrift server
thrift2 Run the HBase Thrift2 server
clean Run the HBase clean up script
classpath Dump hbase CLASSPATH
mapredcp Dump CLASSPATH entries required by mapreduce
pe Run PerformanceEvaluation
ltt Run LoadTestTool
version Print the version
CLASSNAME Run the class named CLASSNAME

进入命令行

[root@hadoop1 ~]# hbase shell

退出命令行

hbase(main):001:0> exit

查看全部表

hbase(main):001:0> list
TABLE
0 row(s) in 1.9500 seconds
=> []

创建表

create '表名称','列名称1',...,'列名称n'

eg:建立一个表scores,有两个列族grad和courese。
hbase(main):004:0> create 'scores','grad','courese'
0 row(s) in 1.5820 seconds
=> Hbase::Table - scores

hbase(main):005:0> list
TABLE
scores
1 row(s) in 0.0080 seconds
=> ["scores"]

查看表结构

HBase命令行基本操作_表结构

添加记录

put '表名','行键名','列名','单元格值','时间戳'
时间戳可以省略。

hbase(main):009:0> put 'scores','Tom','grad:','5'
hbase(main):011:0> put 'scores','Tom','courese:math','100'
hbase(main):012:0> put 'scores','Tom','courese:art','100'

hbase(main):013:0> put 'scores','Mark','grad','6'

hbase(main):014:0> put 'scores','Mark','courese:english','120'

hbase(main):015:0> put 'scores','Mark','courese:chinese','108'

查看表所有记录(全面扫描)

scan 'scores'

HBase命令行基本操作_zookeeper_02

查找某条记录

hbase(main):020:0> get 'scores','Mark'
COLUMN CELL
courese:chinese timestamp=1435491529683, value=108
courese:english timestamp=1435491508206, value=120
grad: timestamp=1435491484521, value=6
3 row(s) in 0.0520 seconds

hbase(main):021:0> get 'scores','Mark','grad'
COLUMN CELL
grad: timestamp=1435491484521, value=6
1 row(s) in 0.0390 seconds

修改数据存储的版本

HBase命令行基本操作_hadoop_03

HBase命令行基本操作_表结构_04

查看记录的多个版本

HBase命令行基本操作_hbase_05

统计行数

hbase> count 'ns1:t1'
hbase> count 't1'
hbase> count 't1', INTERVAL => 100000
hbase> count 't1', CACHE => 1000
hbase> count 't1', INTERVAL => 10, CACHE => 1000
统计一般比较耗时,使用mapreduce进行统计,统计结果会缓存,默认是10行,统计间隔默认是1000行。

hbase(main):038:0> count 'scores'
2 row(s) in 0.0290 seconds
=> 2

修改表结构

增加一列族
hbase(main):048:0> alter 'scores',NAME=>'info'
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 2.4330 seconds

删除一个列族
hbase(main):053:0> alter 'scores',NAME=>'NAME=info',METHOD=>'delete'
Updating all regions with the new schema...
0/1 regions updated.
1/1 regions updated.
Done.
0 row(s) in 2.4670 seconds
hbase(main):055:0> alter 'scores','delete'=>'courese'

不过不能删除掉,先​​disable 'scores'​​​,修改完之后再​​enable 'scores'​​。

删除表

先禁用表
hbase(main):057:0> disable 'scores'
然后删除表
hbase(main):057:0> drop 'scores'

删除指定数据

delete 'scores','Mark','courese:english'

删除整行

deleteall '表名','行键'
deleteall 'scores','Mark'(慎用)

清空表

表结构仍然在。

truncate 'scores'