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): 写操作将会触发一系统动作
Hbse的读写过程的更多相关文章
- f2fs源码分析之文件读写过程
本篇包括三个部分:1)f2fs 文件表示方法: 2)NAT详细介绍:3)f2fs文件读写过程:4) 下面详细阐述f2fs读写的过程. 管理数据位置关键的数据结构是node,node包括三种:inode ...
- HDFS 文件读写过程
HDFS 文件读写过程 HDFS 文件读取剖析 客户端通过调用FileSystem对象的open()来读取希望打开的文件.对于HDFS来说,这个对象是分布式文件系统的一个实例. Distributed ...
- HDFS读写过程
HDFS的读写过程: 读过程: Client收到用户的读请求——client拿着path向namenode请求文件或者block的datanode列表——client从返回的datanode列表中选择 ...
- HBase 文件读写过程描述
HBase 数据读写过程描述 我们熟悉的在 Hadoop 使用的文件格式有许多种,例如: Avro:用于 HDFS 数据序序列化与 Parquet:常见于 Hive 数据文件保存在 HDFS中 HFi ...
- HBase的简单介绍,寻址过程,读写过程
HBase是列族数据库,主要由,表,行键,列族,列标识,值,时间戳 组成, 表 其中HBase 主要底层存储依赖与hdfs,可以在HDFS中看到每个表名都作为一个独立的目录结构 ...
- hbase的读写过程
hbase的读写过程: hbase的架构: Hbase真实数据hbase真实数据存储在hdfs上,通过配置文件的hbase.rootdir属性可知,文件在/user/hbase/下hdfs dfs - ...
- Netty源码解析 -- ChannelPipeline机制与读写过程
本文继续阅读Netty源码,解析ChannelPipeline事件传播原理,以及Netty读写过程. 源码分析基于Netty 4.1 ChannelPipeline Netty中的ChannelPip ...
- Hadoop学习总结之二:HDFS读写过程解析
一.文件的打开 1.1.客户端 HDFS打开一个文件,需要在客户端调用DistributedFileSystem.open(Path f, int bufferSize),其实现为: public F ...
- HDFS追本溯源:租约,读写过程的容错处理及NN的主要数据结构
1. Lease 的机制: hdfs支持write-once-read-many,也就是说不支持并行写,那么对读写的互斥同步就是靠Lease实现的.Lease说白了就是一个有时间约束的锁.客 ...
随机推荐
- web.xml配置详解之listener与context-param
1. 启动一个WEB项目的时候,容器(如:Tomcat)会去读它的配置文件web.xml.读两个节点: <listener></listener> 和 <context- ...
- libevent中定时器的使用方法
#include <stdio.h> #include <stdlib.h> #include <sys/time.h> #include <signal.h ...
- Unable to generate a temporary class (result=1)解决方法
Unable to generate a temporary class (result=1).error CS2001: Source file 'C:\WINDOWS\TEMP\ug5v9uxt. ...
- tab栏切换的特殊效果(类似网易的登陆栏效果)
代码显示效果如上图所示: 需求说明: 在实际需求中,会遇到这样的情况:不仅是要展示选项卡的内容,而且还有可能在选项卡中需求顾客填写相关内容,而这些内容是顾客如果想了解更深层次的,就会继续填写右边的内容 ...
- MON166 FAQ
MON166: SOFTWARE RESET USING THE MONITOR QUESTION What happens when debugging using MON166 and my pr ...
- UE 的使用
1.查找,只匹配整个词语:匹配词语Andy,而不匹配包含Andy的词语,Andy前后有特殊字符才能匹配成功,前后的特殊字符表明Andy是一个词语. 2.正则表达式匹配,如下: 符号 功能 % 匹配行首 ...
- 多个非同源的shared_ptr管理对象引起double free
有多个不同源的shared_ptr管理对象时会出现多次释放对象,这里不同源是指多组间不是通过拷贝构造.复制等手段而来的,即几组shared_ptr是独立声明的. #include<iostrea ...
- MySQL CAST与CONVERT 函数的用法
MySQL CAST与CONVERT 函数的用法 产生另一个类型的值 MySQL 的CAST()和CONVERT()函数可用来获取一个类型的值,并产生另一个类型的值. 两者具体的语法如下:1 CAS ...
- 【JavaScript】关于JS中的constructor与prototype
最初对js中 object.constructor 的认识: 在学习JS的面向对象过程中,一直对constructor与prototype感到很迷惑,看了一些博客与书籍,觉得自己弄明白了,现在记录如下 ...
- 【JavsScript】父子页面之间跨域通信的方法
由于同源策略的限制,JavaScript跨域的问题,一直是一个比较棘手的问题,为了解决页面之间的跨域通信,大家煞费苦心,研究了各种跨域方案.之前也有小网同学分享过一篇“跨域,不再纠结” 开始照着尝试时 ...