zoukankan      html  css  js  c++  java
  • Hbse的读写过程

    1.Hbase的读取过程。

    以读取test_region表,row key为this is row value 400000为例.

    1: 到zookeeper中去读取/hbase/root-region-server znode中的值,得到-ROOT-的唯一region归那台region-server管.

    2: 管-ROOT- 的那台region-server将从hdfs系统中加载-ROOT-表的内容到内存中(并cache).

    3.1 在我目前的测试中-ROOT- 表只有一个row key,  所以直接从info:server中得到管.META.的那台region-server管, 返回给clinet.

    3.2 如果-ROOT-表中有多条.META.关于test_region表的记录,找法和4相同

    4: 管.META. 的那台region-server从hdfs加载表.META.的数据,并cache.  client以test_region,this is row value 400000, 9999999999999, 找到那条比这个key最接近的那条数据,从info:server中得管这个表的这个region(叫a)的region-server服务器.

    5: 管理a这个region的服务器从hdfs找到存储这条数据的文件,然后读取返回.

    总结:

    (1): 经过三次,定位到数据所在的region

    (2): 读操作不要经过hmaster

    2.Hbase写数据过程。

    以插入test_region表,row key为this is row value 400001为例.

    1: 到zookeeper中去读取/hbase/root-region-server znode中的值,得到-ROOT-的唯一region归那台region-server管.

    2: 管-ROOT- 的那台region-server将从hdfs系统中加载-ROOT-表的内容到内存中(并cache).

    3.1 在我目前的测试中-ROOT- 表只有一个row key,  所以直接从info:server中得到管.META.的那台region-server管, 返回给clinet.

    3.2 如果-ROOT-表中有多条.META.关于test_region表的记录,找法和4相同

    4: 管.META. 的那台region-server从hdfs加载表.META.的数据,并cache.  client以test_region,this is row value 400000, 9999999999999, 找到那条比这个key最接近小的那条数据,从info:server中得管这个表的这个region(叫a)的region-server服务器.

    5: 先写HLog, 当region-server死了后恢复数据使用

    6.1 : 如果cache 没有达到指定的值,则把数据写到这台region-server服务器的这块内存就好了.

    6.2 : 如果cache已达到某个值,则新建一个内存区去接受新来的insert,老的cache区将由一个线程flush到文件系统相应用的region.

    7: 如果region文件太多并达到某些大小,将开启一个线程做合并工作,合并后将删除其它小文件,如果合并后文件过大,将进行split,split多个region时,将向master报告region要进行重新分配。进入master分配region过程.

    总结:

    (1): 经过三次,定位到数据所在的region

    (2): 写操作不要经过hmaster.

    (3): 写操作将会触发一系统动作

  • 相关阅读:
    游标本次循环,跳过某些语句
    SQL 把结果集的某列连加成一行
    DotNetty 跨平台的网络通信库(转)
    Slickflow.NET 开源工作流引擎基础介绍-.NET Core2.0 版本实现介绍 (转)
    C# Winform应用程序占用内存较大解决方法整理(转)
    (转)vs2010 vs2013等vs中如何统计整个项目的代码行数
    如何将运维的报警做成运营的报警--Java后端架构
    阿里员工内部常用免费工具包 (转)
    ASP.NET中常用的几个李天平开源公共类LTP.Common,Maticsoft.DBUtility,LtpPageControl (转)
    C#与MATLAB混合编程
  • 原文地址:https://www.cnblogs.com/hupengcool/p/3280568.html
Copyright © 2011-2022 走看看