Hbase基础
HBase
HBase概念:HBase是Apache旗下一个高可靠性、高性能、面向列、可伸缩的分布式数据库。
hbase操作速度受以下两个因素影响:
1、 表会被并发地进行插入、编辑以及删除操作。
2、 多个表关联后的复杂查询。
存储结构
HBase表由列族组成,列族由列组成,列由key和value组成,最基本的存储单位是列。
HMaster服务器负责维护表的结构信息;
HRegionServer服务器负责存储数据。
MemStore是内存缓冲区
通常当MemStore的大小达到128M或者占用内存达到总内存的40%时会触发flush操作。
当StoreFile
文件数量增长到3个后,会触发合并(Compact)操作。
当单个StoreFile的大小超过10G后,会触发分裂(Split)操作。
只有当写HLog和写MemStore都成功了才算数据写入完成。
如果日志数量达到32的时候,就会触发强制flush操作。
HBase组件的功能
Client:
包含了访问HBase的接口,还有维护缓存加速HBase的访问。
Zookeeper:
实现HMaster的高可用;监控HRegionServer的状态;存储.META.的地址。
HMaster:
维护.META.;为HRegionServer分配Region;维护集群的负载均衡。
HRegionServer:
处理客户端的读写请求;管理HMaster分配的Region。
HDFS:
:为HBase提供最终的底层数据存储服务。
Zookeeper集群的开启和关闭
start-hbase.sh
stop-hbase.sh
shell中的命令
list:
查看有哪些表
describe 表名:
查看表的属性
put,表名 ,rk,列族名:列名,插入的数据:
插入数据
scan 表名:
查看表中的数据
使用起始行 (STARTROW) 和结束行 (ENDROW) 来限制显示记录的条数。
get,表名,rk,列族:列名:
获取单元格数据
delete 表名,rk,列族:
删除单元格数据
- HBase删除记录并不是真的立即删除了数据,而是放置了一个墓碑标记,把这个版本数据标记为不可见。
deleteall 表名,rk:
删除rk的整行记录
disable 表名
:停用表
enable 表名
:启用表