HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。
HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。
HBase常用命令
进入shell
echo $HBASE_HOME
/data/program/hbase
或
/data/program/hbase/bin/hbase shell
表结构
1. 创建表
语法:create <table>, {NAME => <family>, VERSIONS => <VERSIONS>}
创建一个User表,并且有一个info列族
create 'User','info'
2. 查看所有表
list
3. 查看表详情
describe 'User'
4. 表修改
删除指定的列族
alter 'User','delete'=>'info'
表数据
1. 插入数据
语法:put <table>,<rowkey>,<family:column>,<value>
put 'User', 'row1', 'info:name', 'xiaoming'
2. 根据rowKey查询某个记录
语法:get <table>,<rowkey>,[<family:column>,....]
get 'User', 'row2'
get 'User', 'row3', 'info:sex'
3. 查询所有记录
语法:scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num}
扫描所有记录
scan 'User'
扫描前2条
scan'User', {LIMIT =>2
范围查询
scan 'User', {STARTROW => 'row2'}
scan 'User', {STARTROW => 'row2', ENDROW => 'row2'}
scan 'User', {STARTROW => 'row2', ENDROW => 'row3'}
另外,还可以添加TIMERANGE和FITLER等高级功能
STARTROW,ENDROW必须大写,否则报错;查询结果不包含等于ENDROW的结果集
4. 统计表记录数
语法:count <table>, {INTERVAL => intervalNum, CACHE => cacheNum}
INTERVAL设置多少行显示一次及对应的rowkey,默认1000;
CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度
count 'User'
5. 删除
删除列
delete 'User', 'row1', 'info:age'
删除所有行
deleteall 'User','row2'
删除表中所有数据
truncate'User'
表管理
1. 禁用表
disable 'User'
2. 启用表
enable 'User'
3. 测试表是否存在
exists 'User'
4. 删除表
删除前,必须先disable
disable 'User'
drop 'TEST.USER'