一、HBase的特点是什么
1.HBase一个分布式的基于列式存储或者行式存储的数据库,基于hadoop的hdfs存储,zookeeper进行管理。
2.HBase适合存储半结构化或非结构化数据,对于数据结构字段不够确定或者杂乱无章很难按一个概念去抽取的数据。
3.HBase为null的记录不会被存储.
4.数据存储模式为key,value模式:(Table,Rowkey,Column,Timestamp)-> value 
5.HBase是主从架构。Hmaster作为主节点,Hregionserver作为从节点。
 
二、HBase存数据流程

流程:Client请求Zookeeper确定meta表所在的RegionServer所在的地址,接着根据Rowkey找到数据所归属的RegionServer;用户提交put或delete请求时HbaseClient会将put或delete请求添加到本地buffer中,符合一定条件
会通过异步批量提交服务器处理。
 
接着数据到达Region后,服务端处理流程如下:

 
流程:RegionServer去获取RowLock,region更新共享锁;接着Hbase会先写写日志WAL(数据可靠性)再写缓存MemStore(阈值默认64M,每个列族对应一个Store下的MemStore);然后释放锁后将日志落到HDFS;若MemStore达到阈值则将缓存数据落磁盘StoreFile,最后多个StoreFile发生合并;若StoreFile很大会触发split操作,将当前region分割成2个Region,并同步到Hmaster。
 
三、HBase取数据流程
HbaseClient的操作和存数据类似

服务器操作流程:

RegionServer收到get请求后,对当前Region进行Scan,接着会根据列族对Store进行Scan,同时会对对应的MemStore进行Scan;最后找到我们要的数据返回给Client。注意:一个StoreScanner会对应多个StoreFileScanner,整个过程是一个层级关系。

 
四、HBase存取优化
检索优化(BloomFilter):应用BloomFilter来提高随机读的性能,BloomFilter是列族级别的配置
五、HBase API使用

 

HBase数据存取流程的更多相关文章

  1. HBase 数据读写流程

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

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

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

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

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

  4. Hbase数据读写流程

    From: https://blog.csdn.net/wuxintdrh/article/details/69056188 写操作: Client写入,存入Memstore,Memstore满则Fl ...

  5. 2.1-2.2 HBase数据存储

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

  6. Laxcus大数据管理系统2.0(5)- 第三章 数据存取

    第三章 数据存取 当前的很多大数据处理工作,一次计算产生几十个GB.或者几十个TB的数据已是正常现象,驱动数百.数千.甚至上万个计算机节点并行运行也已经不足为奇.但是在数据处理的后面,对于这种在网络间 ...

  7. HBase 数据迁移方案介绍

    一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分为以下几类: 图1.HBase数据迁移方案 从上面图中可看出,目前的方案主要有四类,Hadoop层有一类,HBase层有三类.下 ...

  8. HBase 数据迁移方案介绍 (转载)

    原文地址:https://www.cnblogs.com/ballwql/p/hbase_data_transfer.html 一.前言 HBase数据迁移是很常见的操作,目前业界主要的迁移方式主要分 ...

  9. Hbase的读写流程

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

随机推荐

  1. Pig是轻类型的

    总体来说Pig是“强类型”的,但Pig又允许用户不指定输入数据的类型,而可以自己根据用户的使用方式进行推测. 称Pig是“轻类型”的更合适,它确实对类型有严格的要求,但是如果没有明确定义类型也是可以处 ...

  2. hibernate的延迟加载和抓取策略

    一,延迟加载 1.实体类延迟加载 通过代理机制完成,由javassist类库实现运行时代理,修改实体类的字节码实现了运行时代理     <class lazy="true|false& ...

  3. 转:iBatis简单入门教程

    iBatis 简介: iBatis 是apache 的一个开源项目,一个O/R Mapping 解决方案,iBatis 最大的特点就是小巧,上手很快.如果不需要太多复杂的功能,iBatis 是能够满足 ...

  4. CATransform3D的m34使用

    CATransform3D的m34使用 效果图 源码 // // ViewController.m // StarWars // // Created by YouXianMing on 15/11/ ...

  5. 关于WSL(Windows上的Linux子系统)的简单介绍及安装

    WSL,Windows Subsystem for Linux,就是之前的Bash on [Ubuntu on] Windows(嗯,微软改名部KPI++),在wsl环境下我们可以运行一些Linux程 ...

  6. 铁乐学python_Day41_线程01

    线程概念的引入背景 进程 之前我们已经了解了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程. 程序和进程的区别就在于: 程序是 ...

  7. 内置数据结构(list)

    列表.元组.字符串.字典和集合是python内置的数据结构,也可以叫内置容器.前3个是线性结构,线性结构可以切片操作.解包和封包操作. dir()方法可以查看对象拥有哪些属性和方法. help()方法 ...

  8. 个人作业——APP案例分析

    APP--饿了么:平台--Android 第一部分 调研, 评测 1 个人上手体验 首先送上APP截图一张: 相信很多学生都用过这个APP了,第一次使用都是因为新用户有大额的满减优惠才下载这个APP使 ...

  9. 【转载】Spring最佳后台框架

    https://www.quora.com/What-is-the-best-backend-arquitecture-using-spring-framework The most modern a ...

  10. codeforces 933D A Creative Cutout

    题目链接 正解:组合数学. 充满套路与细节的一道题.. 首先我们显然要考虑每个点的贡献(我就不信你能把$f$给筛出来 那么对于一个点$(x,y)$,我们设$L=x^{2}+y^{2}$,那么它的贡献就 ...