一.Hbase介绍
HBASE是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBASE技术可在廉价PC Server上搭建起大规模结构化存储集群。是Apache软件基金会的Hadoop项目的一部分,运行于HDFS文件系统之上,因此可以容错地存储海量稀疏的数据。
二.Hbase会被影响的两个因素
1.表会被并发的进行插入,编辑以及删除操作
2.查询语句通常都不是简单地对一个表的查询,而有可能是多个表关联后的复杂查询,甚至有可能有group by或者order by 操作。
三.Hbase存储数据
• RowKey:是Byte array,是表中每条记录的“主键”,方便快速查找,Rowkey的设计非常重要。
• Column Family:列族,拥有一个名称(string),包含一个或者多个相关列
• Column:属于某一个columnfamily,familyName:columnName,每条记录可动态添加
• Version Number:类型为Long,默认值是系统时间戳,可由用户自定义
四.Hbase原理
写流程
1、 client向hregionserver发送写请求。
2、 hregionserver将数据写到hlog(write ahead log)。为了数据的持久化和恢复。
3、 hregionserver将数据写到内存(memstore)
4、 反馈client写成功。
数据flush过程
1、 当memstore数据达到阈值(默认是64M),将数据刷到硬盘,将内存中的数据删除,同时删除Hlog中的历史数据。
2、 并将数据存储到hdfs中。
3、 在hlog中做标记点。
数据合并过程
1、 当数据块达到4块,hmaster将数据块加载到本地,进行合并
2、 当合并的数据超过256M,进行拆分,将拆分后的region分配给不同的hregionserver管理
3、 当hregionser宕机后,将hregionserver上的hlog拆分,然后分配给不同的hregionserver加载,修改.META.
4、 注意:hlog会同步到hdfs
Hbase的读流程
1、 通过zookeeper和-ROOT-.META.表定位hregionserver。
2、 数据从内存和硬盘合并后返回给client
3、 数据块会缓存
五.Hbase集群的搭建
集群搭建看链接:
https://blog.csdn.net/u011308691/article/details/51476383?spm=1001.2014.3001.5501
六.Hbase Shell的使用
1.启动hbase命令
bin/hbase shell
2.创建表并插入数据
create 'user','info'
list ---列出表
describe 'user'---查看表信息
create 'user','info'
put 'user','1001','info:name','lisi'
put 'user','1001','info:age','18'
put 'user','1001','info:sex','male'
3.查看表数据
scan 'user'
4.获取单元格数据
get 'user','1001'
5.删除单元格数据
delete 'user','10012','info:sex'
6.删除整行记录
deleteall 'user','1001'
7.停止表
disable 'user'
8.启用表
enable 'user'
9.删除表之前先停用表
drop 'user'