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数据读写流程的更多相关文章

  1. HBase 数据读写流程

    HBase 数据读写流程 2016-10-18 杜亦舒 读数据 HBase的表是按行拆分为一个个 region 块儿,这些块儿被放置在各个 regionserver 中 假设现在想在用户表中获取 ro ...

  2. HBase数据读写流程(1.3.1)

    ===数据写入流程=== 源码:https://github.com/apache/hbase/blob/master/hbase-server/src/main/java/org/apache/ha ...

  3. HBase - 数据写入流程解析

    本文由  网易云发布. 作者:范欣欣 本篇文章仅限内部分享,如需转载,请联系网易获取授权. 众所周知,HBase默认适用于写多读少的应用,正是依赖于它相当出色的写入性能:一个100台RS的集群可以轻松 ...

  4. Hbase的读写流程

    HBase读写流程 1.HBase读数据流程 HRegionServer保存着meta表以及表数据,要访问表数据,首先Client先去访问zookeeper,从zookeeper里面获取meta表所在 ...

  5. HBase数据存取流程

    一.HBase的特点是什么 1.HBase一个分布式的基于列式存储或者行式存储的数据库,基于hadoop的hdfs存储,zookeeper进行管理. 2.HBase适合存储半结构化或非结构化数据,对于 ...

  6. JuiceFS 数据读写流程详解

    对于文件系统而言,其读写的效率对整体的系统性能有决定性的影响,本文我们将通过介绍 JuiceFS 的读写请求处理流程,让大家对 JuiceFS 的特性有更进一步的了解. 写入流程 JuiceFS 对大 ...

  7. 2.1-2.2 HBase数据存储

    一.HBase数据检索流程 一篇介绍HBase数据读写流程的解析的博文:http://hbasefly.com/2016/12/21/hbase-getorscan/?wsfatm=uqvhl3 1. ...

  8. HBase 文件读写过程描述

    HBase 数据读写过程描述 我们熟悉的在 Hadoop 使用的文件格式有许多种,例如: Avro:用于 HDFS 数据序序列化与 Parquet:常见于 Hive 数据文件保存在 HDFS中 HFi ...

  9. 【HBase】知识小结+HMaster选举、故障恢复、读写流程

    1:什么是HBase HBase是一个高可靠性,高性能,面向列,可伸缩的分布式数据库,提供海量数据存储功能,一个结构化的分布式存储系统,不同于一般的关系型数据库,它适合半结构化和非结构化数据存储. 2 ...

随机推荐

  1. jmap、jstack、jps无法连接jvm解决办法

    转载 http://blog.51cto.com/zhangshaoxiong/1310166 一.背景 在对线上服务器的java应用dump操作时发现,以下报错,不能dump.jps也获取不到jav ...

  2. HDOJ 2004 成绩转换

    #include<cstdio> #include<iostream> using namespace std; int main() { int score; while ( ...

  3. 996ICU的感悟

     并不只是口头上的支持,吉多·范罗苏姆近日又在 Python 官方论坛发布一篇名为<Can we do something for 996 programmers in China?>(我 ...

  4. 在Docker中安装配置Oracle12c并实现数据持久化

    在Docker中安装配置Oracle12c并实现数据持久化 选定镜像,并pull到系统中,一定要先配置加速,不然超级慢 eric@userver:~$ docker pull sath89/oracl ...

  5. URL传值乱码

    JS端: &value=encodeURIComponent("value") C端: HttpUtility.UrlDecode(Request.Params[" ...

  6. 第1章 计算机网络和协议(3)_TCP/IP协议

    3. TCP/IP协议 3.1 TCP/IP协议分层 3.2 TCP/IP通信过程 (1)应用层:浏览器和Web服务器是两个对等的实现,它们之间使用http协议进行通信. (2)传输层:网页传输之前, ...

  7. 评委打分系统最新版,采用Flash展示双屏技术,望大家测试,多提意见.

    最新版结合应用了 Flash展示技术,PPT展示技术,移动端云打分技术等. 详细视频见土豆视频:http://www.tudou.com/programs/view/NUN2lUzkPRI 放大查看上 ...

  8. openstack-- neutron 二/三层网络实现探究

    引出 Neutron 是openstack 中提供网络虚拟化的组件,根据二层网络的实现方式不同(即agent的不同),可以分为Linux bridge的方式,Openvswitch的方式.而且,lay ...

  9. Django中的ORM介绍,字段以及字段的参数。

    Object Relational Mapping(ORM) ORM介绍 ORM概念 对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据 ...

  10. Python网络爬虫之requests模块

    今日内容 session处理cookie proxies参数设置请求代理ip 基于线程池的数据爬取 知识点回顾 xpath的解析流程 bs4的解析流程 常用xpath表达式 常用bs4解析方法 引入 ...