天天看点

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表,不支持条件查询

继续阅读