博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HBase原理
阅读量:3959 次
发布时间:2019-05-24

本文共 780 字,大约阅读时间需要 2 分钟。

HBase读数据流程

Client先访问zookeeper,根据namespace、表名和rowkey从meta表读取region的位置

找到这个region对应的regionserver

查找对应的region

先从MemStore找数据,如果没有,再到BlockCache里面读

BlockCache还没有,再到StoreFile上读(为了读取的效率)

如果是从StoreFile里面读取的数据,不是直接返回给客户端,而是先写入BlockCache,再返回给客户端

Hbase写流程

Client向HregionServer发送写请求

HregionServer将数据写到HLog,为了数据的持久化和恢复

HregionServer将数据写到内存(MemStore)

反馈Client写成功

数据flush过程

1) 当MemStore数据达到阈值(默认是128M),将数据刷到硬盘,将内存中的数据删除,同时删除HLog中的历史数据

hbase.hregion.memstore.flush.size: 针对region级别,当一个region内或regionserver的所有memstore总大小达到该阈值的时候,所有的memstore都会溢写到磁盘文件

2)并将数据存储到HDFS中

数据合并过程

1)一个Store中的Hfile达到4块,HMaster将数据块加载到本地,进行合并

2)当合并的数据超过256M,进行拆分,将拆分后的Region分配给不同的HregionServer管理

3)当HregionServer宕机后,将HregionServer上的Hlog拆分,然后分配给不同的HregionServer加载,修改META.

4)注意:HLog会同步到HDFS(memstore在一个server上也会有很多,所以hlog丢失会不安全)

 

转载地址:http://zvazi.baihongyu.com/

你可能感兴趣的文章
POJ---2010(Moo University - Financial Aid,优先队列)
查看>>
POJ---3662(Telephone Lines,最短路+二分*好题)
查看>>
L2-007. 家庭房产(并查集)
查看>>
L2-016. 愿天下有情人都是失散多年的兄妹(搜索)
查看>>
L2-019. 悄悄关注
查看>>
POJ 3468 A Simple Problemwith Integers(SplayTree入门题)
查看>>
营业额统计 HYSBZ - 1588 (伸展树简单应用)
查看>>
HDU 1890 Robotic Sort(伸展树---反转应用)
查看>>
POJ 3580 SuperMemo(伸展树的几个基本操作)
查看>>
(十) Web与企业应用中的连接管理
查看>>
(八) 正则表达式
查看>>
一.JavaScript 基础
查看>>
7.ECMAScript 继承
查看>>
HTML DOM
查看>>
AJAX 基础
查看>>
JSON 基础
查看>>
J2EE监听器Listener接口大全[转]
查看>>
cookie、session、sessionid 与jsessionid[转]
查看>>
常见Oracle HINT的用法
查看>>
JAVA中各类CACHE机制实现的比较 [转]
查看>>