欢迎投稿

今日深度:

HBase系统架构,

HBase系统架构,


阅读原文

摘要: 1 HBase整体架构 1.1 HMaster 1.2 HRegionServer 2 HBase 客户端读数据流程分析 3 HBase 客户端写数据流程分析 4 HBase服务端读数据流程分析 5 HBase服务端写数据流程分析 6 HBase服务端删除和increase操作 7 Region分...

1 HBase整体架构
1.1 HMaster
1.2 HRegionServer
2 HBase 客户端读数据流程分析
3 HBase 客户端写数据流程分析
4 HBase服务端读数据流程分析
5 HBase服务端写数据流程分析
6 HBase服务端删除和increase操作
7 Region分裂和合并问题分析
8 HBase主备集群数据同步分析

分享的目的

更进一步地深入掌握HBase的内核架构

1 HBase整体架构

整体架构图:

1.1 HMaster

  • HMaster是保证HBase高可靠的因素之一;
  • 线上环境 ,HMaster是般由两到三台组成,普通(24G)的虚拟机;
  • 1.2 HRegionServer

    2 HBase 客户端读数据流程分析

    流程图

  • 第二或第二次以后读写数据

        通过查找客户端本地的缓存,直接和相关的HRegionServer进行通信,进行相关的数据读操作; 
    
  • 3 HBase 客户端写数据流程分析

    流程图

    HBase服务端读写据流程分析

    1. 服务端核心类:

    org.apache.hadoop.hbase.regionserver.HRegion

    2. HBase源码模块名称:

    hbase-server

    4 服务端读数据流程分析

    以get(final Get get)为例进行分析

    代码层面如下两个主要的方法:
    scanner = getScanner(scan);
    scanner.next(results);
    HBase regionServer读取数据主要有两个步骤:

        1. 根据Get对象生成相关的RegionScanner对象, 在这个过程中可以充分利用布隆过滤器和时间戳, RegionScanner对象主要包括多个StoreScanner,一个StoreScanner下面包含多个StoreFileScanner和一个MemStoreScanner,当然每个StoreFile下面有多个HFile;
        2. 调用next方法, 即扫描StoreFile和和MemStore, 依次查找每一个每符合要求的cell(当然在查找的过程中会有相关的缓存,在这里提一下,阿里HBase团队出一种针对SSD存储的BucketCache),并填充结果集;
    

    5 服务端写数据流程分析

    注意: 如果一次put的数据比较 多,3的步骤要反复执行多次,并且每次循环都要先开始执行依次步骤1和

         步骤2的检查操作。

    重要: 在刷日志 这步骤中,需要根据建表时是否设置 同步写入WAL,以及WAL同步到HDFS中要求,会

         有很大的不同,默认是写一次操作,WAL要刷一次HDFS, 这是最安全的,但写入性能不是很
         高,设置 成异步刷盘(ASYNC_WAL)比较好性能最好(默认1s一次),这样丢失的数据最少,性能可
         以接受,常见的设置有(SKIP_WAL, ASYNC_WAL, SYNC_WAL, FSYNC_WAL, 建表的时候设
         置), 线上环境建议用默认值比较 好,刷日志的时候只写到HDFS,不会写到硬盘上, 而且性能也
         非常好,毕竟 Hlog是顺序文件 ,在HDFS中是append操作;

    6 HBase服务端删除和increase操作

    delete过程和put过程一样,只是在写的过程中添加相关的墓杯标记
    increase操作在服务端主要有三个步骤:

      1. 读取原来列的数据到内存中; 
      2. 修改读到内存中的数据; 
      3. 重新数据写到memStore和WAL中; 

    7 Region分裂和合并问题分析

    7.1 Region分裂

  • 分割点的确定: Region中StoreFile最大文件中的内部中点
  • 执行Region分裂的时间是: memStore刷到HDFS的时候,后台线程异步执行,所在类名为MemStoreFlusher
  • 7.2 Region合并

    8 HBase主备集群数据同步分析

    更进一步深入了解掌握HBase;


    www.htsjk.Com true http://www.htsjk.com/hbase/39342.html NewsArticle HBase系统架构, 阅读原文 摘要:  1 HBase整体架构 1.1 HMaster 1.2 HRegionServer 2 HBase 客户端读数据流程分析 3 HBase 客户端写数据流程分析 4 HBase服务端读数据流程分析 5 HBase服务端写数据流程...
    相关文章
      暂无相关文章
    评论暂时关闭