zoukankan      html  css  js  c++  java
  • 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)将合并后的最终结果返回给客户端。

  • 相关阅读:
    设置密码等级判断
    密码验证包含数字字母字符的两个或两个以上的组合
    解决ps不能直接把文件拖进去的问题
    图片上传js
    关于手机ios和安卓和pc的点击事件的兼容
    css设置两行多余文字用..显示
    对于奇数和偶数的轮播
    手机端开发的问题(摘要)
    懒加载
    Django admin 后台 数据展示
  • 原文地址:https://www.cnblogs.com/noyouth/p/13124080.html
Copyright © 2011-2022 走看看