• HBase 读写数据流程


    一 写数据流程

    1)Client先访问zookeeper,获取hbase:meta表位于哪个RegionServer。
    2)访问对应的RegionServer,获取hbase:meta表,根据读请求的namespace:table/rowkey,查询出目标数据位于哪个RegionServer中的哪个Region中。并将该table的region信息以及meta表的位置信息缓存在客户端的metacache,方便下次访问。
    3)与目标RegionServer进行通讯;
    4)将数据顺序写入(追加)到WAL;
    5)将数据写入对应的MemStore,数据会在MemStore进行排序;
    6)向客户端发送ack;
    7)等达到MemStore的刷写时机后,将数据刷写到HFile。

    二 读数据流程

    1)Client先访问zookeeper,获取hbase:meta表位于哪个RegionServer。
    2)访问对应的RegionServer,获取hbase:meta表,根据读请求的namespace:table/rowkey,查询出目标数据位于哪个RegionServer中的哪个Region中。并将该table的region信息以及meta表的位置信息缓存在客户端的metacache,方便下次访问。
    3)与目标RegionServer进行通讯;
    4)分别在BlockCache(读缓存),MemStore和StoreFile(HFile)中查询目标数据,并将查到的所有数据进行合并。此处所有数据是指同一条数据的不同版本(timestamp)或者不同的类型(Put/Delete)。
    5)将从文件中查询到的数据块(Block,HFile数据存储单元,默认大小为64KB)缓存到BlockCache。
    6)将合并后的最终结果返回给客户端。

  • 相关阅读:
    service
    Specify the input method type
    添加机型
    高数公式
    MacOS 常用终端命令大全
    Linux-常用命令大全
    Mac系统下利用ADB命令使用
    iOS工程师学习Android开发----AndroidStudio环境准备
    封装socket 到vue2.x 使用
    记录一次因为OutOfMemoryError而发现的Excel文件导入慢的优化思路
  • 原文地址:https://www.cnblogs.com/noyouth/p/13124080.html
Copyright © 2020-2023  润新知