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说白了就是一个有时间约束的锁.客 ...
随机推荐
- installshield Basic 工程每次安装完提示重启电脑
将Sequence中的ScheduleReboot Action的Condition清空即可.
- OC:Block语法、Block使用、Block实现数组排序
Block //定义一个求两个数最大值函数 int maxValue (int ,int); //函数的实现 int maxValue (int a, int b){ return a > b ...
- Java字面常量与常量池
Java中的字面常量(区别于final创建的有名常量)通常会保存在常量池中,常量池可以理解为像堆一样的内存区域.但是常量池有一个特性就是,如果常量池中已存在该常量将不会再次为该常量开辟内存 还是看个程 ...
- MFC中显示 .bmp格式的位图
最近在看VisualC++ 图像处理的书籍,表示一直在从基础做起,今天就记录一个简单功能的实现,显示.bmp格式的位图. 首先需要理解的是窗口创建的过程包括两个步骤:首先擦除窗口的背景,然后在对窗口进 ...
- MongoDB下载与安装
本节只针对MONGODB的安装进行介绍,具体mongodb的特点及优势可参考其他文件. 注意32位操作系统支持的最大文件为2GB,所以做大文件海量储存的朋友要选择64位的系统安装.开始我们的下载安装之 ...
- 资源下载南方cass视频教程,包括文档,数据,很全的
废话就不多说了,开始... 北方cass视频教程,包括文档,数据,很全的 视频下载地址:http://www.400gb.com/file/23459263 GIS网盘进入下载:http://laoh ...
- cdoj 30 最短路 flyod
最短路 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.uestc.edu.cn/#/problem/show/30 Descript ...
- GPS获取Location 获取所在地点的经纬度
利用手机获取所在地点的经纬度: Location 在Android 开发中还是经常用到的,比如 通过经纬度获取天气,根据Location 获取所在地区详细Address (比如Google Map 开 ...
- swift 获取UI上某点点颜色
extension UIView { func colorOfPoint (point: CGPoint) -> UIColor { var pixel = UnsafePointer<C ...
- IPC——命名管道
Linux进程间通信——使用命名管道 转载:http://blog.csdn.net/ljianhui/article/details/10202699 在前一篇文章——Linux进程间通信——使用匿 ...