ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Hbase Region管理、region分配、region server上线、region server下线、Region分裂、自动分区和手动分区

2022-01-07 18:03:09  阅读:161  来源: 互联网

标签:hregion region 分配 hbase server Region


Hbase Region管理

region分配

l 任何时刻,一个region只能分配给一个region server

l Master记录了当前有哪些可用的region server,以及当前哪些region分配给了哪些region server,哪些region还没有分配。当需要分配的新的region,并且有一个region server上有可用空间时,master就给这个region server发送一个装载请求,把region分配给这个region server。region server得到请求后,就开始对此region提供服务。

region server上线

  • Master使用ZooKeeper来跟踪region server状态

  • 当某个region server启动时

首先在zookeeper上的server目录下建立代表自己的znode

由于Master订阅了server目录上的变更消息,当server目录下的文件出现新增或删除操作时,master可以得到来自zookeeper的实时通知

一旦region server上线,master能马上得到消息。

region server下线

  • 当region server下线时,它和zookeeper的会话断开,ZooKeeper而自动释放代表这台server的文件上的独占锁

  • Master就可以确定

region server和zookeeper之间的网络断开了

region server挂了

  • 无论哪种情况,region server都无法继续为它的region提供服务了,此时master会删除server目录下代表这台region server的znode数据,并将这台region server的region分配给其它还活着的节点

Region分裂

  • 当region中的数据逐渐变大之后,达到某一个阈值,会进行裂变

一个region等分为两个region,并分配到不同的RegionServer

原本的Region会下线,新Split出来的两个Region会被HMaster分配到相应的HRegionServer上,使得原先1个Region的压力得以分流到2个Region上。

 <-- Region最大文件大小为10G -->  
 <property>  
     <name>hbase.hregion.max.filesize</name>  
     <value>10737418240</value>  
     <final>false</final>  
     <source>hbase-default.xml</source>  
  </property>  
  • HBase只是增加数据,所有的更新和删除操作,都是在Compact阶段做的

  • 用户写操作只需要进入到内存即可立即返回,从而保证I/O高性能读写

自动分区

之前,我们在建表的时候,没有涉及过任何关于Region的设置,由HBase来自动进行分区。也就是Region达到一定大小就会自动进行分区。最小的分裂大小和table的某个region server的region 个数有关,当store file的大小大于如下公式得出的值的时候就会split,公式如下:
M i n ( R 2 ∗ “ h b a s e . h r e g i o n . m e m s t o r e . f l u s h . s i z e ” , “ h b a s e . h r e g i o n . m a x . f i l e s i z e ” ) Min (R^2 * “hbase.hregion.memstore.flush.size”, “hbase.hregion.max.filesize”) Min(R2∗“hbase.hregion.memstore.flush.size”,“hbase.hregion.max.filesize”)
R为同一个table中在同一个region server中region的个数。

  • 如果初始时R=1,那么Min(128MB,10GB)=128MB,也就是说在第一个flush的时候就会触发分裂操作

  • 当R=2的时候Min(22128MB,10GB)=512MB ,当某个store file大小达到512MB的时候,就会触发分裂

  • 如此类推,当R=9的时候,store file 达到10GB的时候就会分裂,也就是说当R>=9的时候,store file 达到10GB的时候就会分裂

  • split 点都位于region中row key的中间点

手动分区

在创建表的时候,就可以指定表分为多少个Region。默认一开始的时候系统会只向一个RegionServer写数据,系统不指定startRow和endRow,可以在运行的时候提前Split,提高并发写

标签:hregion,region,分配,hbase,server,Region
来源: https://blog.csdn.net/qq_40585384/article/details/122354294

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有