Hbase数据读写流程
From:
https://blog.csdn.net/wuxintdrh/article/details/69056188
写操作:
Client写入,存入Memstore,Memstore满则Flush成一个Storefile,Storefile文件数量增长到一定的阈值,触发Compact合并操作,多个Storefile合并成一个Storefile,同时进行版本合并和数据删除,当Storefile compact后,逐步形成越来越大的store file,单个store file大小超过一定的阈值后触发split操作,把当前region分裂为两个region,原来的region下线,新的2个region会被hmaster分配到hregionserver上(负载均衡),使得原先1个Region的压力分流到两个上,Hbase只是增加数据,所有的更新和删除操作都是在COMPACT阶段做的。所以用户操作只需要写入到内存即返回,保证IO性能
写入先memstore, storefile,compact,split
读操作:
Client->zookeeper->.ROOT->.META->用户数据表zookeeper记录了.ROOT的路径信息(root只有一个region),.ROOT理记录了.META的region信息(.META信息可能有多个region)
Hbase中,所有的存储文件都被划分成若干小块存储,这些小存储块在get或scan操作时会加载到内存中
Hbase顺序的读取一个数据块到内存缓存中,其读取相邻的数据时就可以在内存中读取而不是从磁盘中再次读取,减少IO次数
HLog
每个HRegionServer中都会有一个HLog(Write Ahead Log),每次用户操作写入Memstore的同时,也写入一份到HLog文件,该文件定期滚动出新,并删除旧的文件(已经持久化到Storefile中的数据)。当HRegionServer意外终止后,HMaster会通过zookeeper感知,HMaster首先处理遗留的HLog文件,将不同的region的log数据拆分,分别放到相应的region目录下,然后再将失效的region重新分配,领取到这些region的HRegionServer在load region的过程中,会发现有历史的HLog需要处理,因此会replay HLog中的数据到memstore中,然后flush到storefile,完成数据恢复
Hbase数据读写流程的更多相关文章
- HBase 数据读写流程
HBase 数据读写流程 2016-10-18 杜亦舒 读数据 HBase的表是按行拆分为一个个 region 块儿,这些块儿被放置在各个 regionserver 中 假设现在想在用户表中获取 ro ...
- HBase数据读写流程(1.3.1)
===数据写入流程=== 源码:https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/ha ...
- HBase - 数据写入流程解析
本文由 网易云发布. 作者:范欣欣 本篇文章仅限内部分享,如需转载,请联系网易获取授权. 众所周知,HBase默认适用于写多读少的应用,正是依赖于它相当出色的写入性能:一个100台RS的集群可以轻松 ...
- Hbase的读写流程
HBase读写流程 1.HBase读数据流程 HRegionServer保存着meta表以及表数据,要访问表数据,首先Client先去访问zookeeper,从zookeeper里面获取meta表所在 ...
- HBase数据存取流程
一.HBase的特点是什么 1.HBase一个分布式的基于列式存储或者行式存储的数据库,基于hadoop的hdfs存储,zookeeper进行管理. 2.HBase适合存储半结构化或非结构化数据,对于 ...
- JuiceFS 数据读写流程详解
对于文件系统而言,其读写的效率对整体的系统性能有决定性的影响,本文我们将通过介绍 JuiceFS 的读写请求处理流程,让大家对 JuiceFS 的特性有更进一步的了解. 写入流程 JuiceFS 对大 ...
- 2.1-2.2 HBase数据存储
一.HBase数据检索流程 一篇介绍HBase数据读写流程的解析的博文:http://hbasefly.com/2016/12/21/hbase-getorscan/?wsfatm=uqvhl3 1. ...
- HBase 文件读写过程描述
HBase 数据读写过程描述 我们熟悉的在 Hadoop 使用的文件格式有许多种,例如: Avro:用于 HDFS 数据序序列化与 Parquet:常见于 Hive 数据文件保存在 HDFS中 HFi ...
- 【HBase】知识小结+HMaster选举、故障恢复、读写流程
1:什么是HBase HBase是一个高可靠性,高性能,面向列,可伸缩的分布式数据库,提供海量数据存储功能,一个结构化的分布式存储系统,不同于一般的关系型数据库,它适合半结构化和非结构化数据存储. 2 ...
随机推荐
- jmap、jstack、jps无法连接jvm解决办法
转载 http://blog.51cto.com/zhangshaoxiong/1310166 一.背景 在对线上服务器的java应用dump操作时发现,以下报错,不能dump.jps也获取不到jav ...
- HDOJ 2004 成绩转换
#include<cstdio> #include<iostream> using namespace std; int main() { int score; while ( ...
- 996ICU的感悟
并不只是口头上的支持,吉多·范罗苏姆近日又在 Python 官方论坛发布一篇名为<Can we do something for 996 programmers in China?>(我 ...
- 在Docker中安装配置Oracle12c并实现数据持久化
在Docker中安装配置Oracle12c并实现数据持久化 选定镜像,并pull到系统中,一定要先配置加速,不然超级慢 eric@userver:~$ docker pull sath89/oracl ...
- URL传值乱码
JS端: &value=encodeURIComponent("value") C端: HttpUtility.UrlDecode(Request.Params[" ...
- 第1章 计算机网络和协议(3)_TCP/IP协议
3. TCP/IP协议 3.1 TCP/IP协议分层 3.2 TCP/IP通信过程 (1)应用层:浏览器和Web服务器是两个对等的实现,它们之间使用http协议进行通信. (2)传输层:网页传输之前, ...
- 评委打分系统最新版,采用Flash展示双屏技术,望大家测试,多提意见.
最新版结合应用了 Flash展示技术,PPT展示技术,移动端云打分技术等. 详细视频见土豆视频:http://www.tudou.com/programs/view/NUN2lUzkPRI 放大查看上 ...
- openstack-- neutron 二/三层网络实现探究
引出 Neutron 是openstack 中提供网络虚拟化的组件,根据二层网络的实现方式不同(即agent的不同),可以分为Linux bridge的方式,Openvswitch的方式.而且,lay ...
- Django中的ORM介绍,字段以及字段的参数。
Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...
- Python网络爬虫之requests模块
今日内容 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 知识点回顾 xpath的解析流程 bs4的解析流程 常用xpath表达式 常用bs4解析方法 引入 ...