一、简介
- HBASE是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群。
- HBASE的目标是存储并处理大型的数据,更具体来说是仅需使用普通的硬件配置,就能够处理由成千上万的行和列所组成的大型数据。
- HBase 是 Hadoop DataBase的缩写,是Google Bigtable的开源实现,但是也有很多不同之处。比如:Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行 MapReduce来处理Bigtable中的海量数据,HBASE同样利用Hadoop MapReduce来处理HBASE中的海量数据;Google Bigtable利用Chubby作为协同服务,HBase利用Zookeeper作为对应。
二、HBase 组成及在集群中的角色
- HBase 组成
- 一个或者多个主节点,HMaster
- 多个从节点,HRegionServer
- 在集群架构中的角色
- 实时数据采集存储
三、HBase数据结构

如上图所示,key1,key2,key3是三条记录的唯一的row key值,column-family1,column-family2,column-family3是三个列族,每个列族下又包括几列。比如column-family1这个列族下包括两列,名字是column1和column2,ts1:abc,ts2:gdxdf是由row key1和column-family1-column1唯一确定的一个单元cell。这个cell中有两个数据,abc和gdxdf。两个值的时间戳不一样,分别是ts1,ts2, hbase会返回最新时间的值给请求者。
其他
HBase中的数据类型只有 Byte 数组
-
创建表
create "<table-name>", "<rowkey>" -
插入值
put "<table-name>", "<rowkey>", "<column-family-name>:<column-name>", "<column-value>" -
全表扫描
scan '<table-name>' -
查看表结构
desc '<table-name>' -
根据 rowkey 扫描
scan '<table-name>', {STARTROW => '<start-rowkey>'[, STOPROW => '<end-rowkey>']} -
条件查询数据
get "<table-name>", "<rowkey>"[, "<column-family-name>:<column-name>"] -
总记录数统计
count '<table-name>' -
删除数据
- 删除某个 rowkey 的全部数据
deleteall '<table-name>', '<rowkey>' - 删除某列簇下的某个列的所有数据
delete '<table-name>', '<rowkey>', '<column-family-name>:<column-name>'
- 删除某个 rowkey 的全部数据
-
清空表
truncate '<table-name>' -
删除包
- 不能直接删除,只能先去 disable,然后才能删除
disable '<table-name>'
drop '<table-name>'
- 不能直接删除,只能先去 disable,然后才能删除
网友评论