HBase原理、特性以及工作机制 || 与传统数据优劣对比

首先说一下hbase服务器只进行数据的增删改查,存储的话是在HDFS上
hbase角色:
hbase上有两个角色region server———>进行数据的存储(一个服务器会管理几个region(区域));master———–>管理region server,他们两是通过zookeeper管理的,region server实时上报zookeeper自己的信息、master会监听,region server 如果挂了,master会马上协调工作,master如果挂了的话会严重影响业务,所以经常会启动多个master。

1.写数据的过程
(1) client向hregionserver发送写请求。
(2) hregionserver将数据写到hlog(write ahead log)。为了数据的持久化和恢复。
(3)hregionserver将数据写到内存(memstore),数据太多的话就溢写到HDFS上(storeFile)
(4)反馈client写成功。


2.数据合并过程
(1)当数据块达到4块,hmaster将数据块加载到本地,进行合并
(2)当合并的数据超过256M,进行拆分,将拆分后的region分配给不同的hregionserver管理
(3)当hregionser宕机后,将hregionserver上的hlog拆分,然后分配给不同的hregionserver加载,修改.META.
(4)注意:hlog会同步到hdfs


3.读数据过程
(1)先去zookeeper上查找meta表所在的位置
(2)找到meta后去meta 上查找存储自己信息的region server
(3)去目标regionserver上要自己的数据


4.hmaster的职责
(1)管理用户对数据的增删改查
管理用户对Table的增、删、改、查操作;
(2)记录region在哪台Hregion server上
(3)在Region Split后,负责新Region的分配;
(4)新机器加入时,管理HRegion Server的负载均衡,调整Region分布
(5)在HRegion Server宕机后,负责失效HRegion Server 上的Regions迁移。


5.数据切分过程
随着region的数据量增加,需要将region进行切分,一开始的切分策略是到达10G的数据才会切分,当它是小表ode时候。体现不出来分布式的优势,所以改进后先切分 1*1*256M,不够的话 3*3*256M ,5*5*256M。。。。。。最大是10G


6.Client的职责
Client
HBASE Client使用HBASE的RPC机制与HMaster和RegionServer进行通信
管理类操作:Client与HMaster进行RPC;
数据读写类操作:Client与HRegionServer进行RPC。


Hbase的优缺点
优点:
1)线性扩展,随着数据量增多可以通过节点扩展进行支撑
2)数据存储在hdfs上,备份机制健全
3)通过zookeeper协调查找数据,访问速度块。
4) 可以处理高并发,读写速度不会随着数据的增长而显著降低
5)如果列为空就不存储数据,(节省空间)
缺点
1)对事物支持性差
2)不能join表,不支持条件查询

猜你喜欢

转载自blog.csdn.net/qq_41166135/article/details/82455299