设为首页 加入收藏

TOP

hbase表数据的写入流程:(根据rowkey进行写入)
2019-01-03 01:50:40 】 浏览:13
Tags:hbase 数据 写入 流程 根据 rowkey 进行
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/James__Tao/article/details/78106359
1、client先去访问zookeeper,从zookeeper上获取meta表的位置信息
以前的版本hbase的系统表除了meta表还有root表
在root表中存储了meta表的位置信息
新版本中将meta表的位置信息直接存入zookeeper中
2、client向meta表的region所在的regionserver发起访问,读取meta表的数据,获取了hbase集群上所有的表的元数据
3、根据meta表的元数据信息(某张表有几个region及region如何分配及每个reigon的startkey和stopkey),client找到当前要写入的表对应的region及所在regionserver信息
4、 client向对应的regionserver发起写入请求
5、regionserver收到client请求并响应,client先把数据写入到Hlog防止数据丢失
6、再把数据写入到memstore内存缓存区(默认大小128M)
7、当数据写入到Hlog及memstore内存缓存区都成功时,写入才算成功
8、当memstore达到128M或其他的因素的触发,会将memstore中的数据flush成storeFile
9、当storeFile越来越多,会触发compact合并,将多个storeFile文件最终合并成一个文件
合并分为minor compact 和 major compact
在大合并期间打上‘删除’标签的cell或者过期的cell会被统一清理
10、当某个store下的storeFile文件的最终合并后的大小达到10G时,会触发整个region的split分割,一个region一分为二,由master进行分配

编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇启动Hbase后Hmaster自动消失问题.. 下一篇HBase分布式集群搭建(Hbase内置z..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(214) }