Hbase核心进程

x33g5p2x  于2021-03-14 发布在 Hbase  
字(1.4k)|赞(0)|评价(0)|浏览(295)
  • Hbase有HMaster和RegionServer两个核心进程。其中HMaster是主进程,负责管理所有的RegionServer。RegionServer是数据服务进程,负责处理用户数据的读写请求。
  • HMaster与RegionServer之间有着密切关系,而RegionServer又与Region(Hbase中存储数据的最小单元)密不可分,所以下面将分先后顺序分别讲解Region、RegionServer、HMaster

(1)Region

  • Region是Hbase分布式存储的最基本单元。它将一个数据表按Key值范围横向划分为一个个的字表,从而实现分布式存储。这里横向划分的子表在Hbase中被称为Region。每一个Region都关联一个Key值范围。
  • Hbase中的每一个Region只需要记录StartKey即可,因为它的EndKey是下一个Region的StartKey,如下图所示:以第一个Region为例,它是一个半开群建[0.2),它的StartKey为0,它的EndKey为1,所有以0和1开始的RowKey值都存储在这个Region里,以0开头的RowKey只有一个,即RowKey 0,以1开头的一位数的有RowKey1,两位数的有RowKey10、11等,三位数的有100,101等。一次类推至更高阶的位数,这样的存储设计遵循了字典循序的排序规则,很大程度上提高了查询效率。

:-:

  • Region按照存储内容的不同分为元数据Region和用户Region。User Region即用户Region,它是记录用户数据的区域,Meta Region即元数据Region,它是记录每一个User Region的路由信息。
  • Hbase在数据读写时,若读写Region数据的路由,则需要先寻找Meta Region地址,再由Meta Region找寻User Region地址,最后获取具体的Region数据,如下图所示:

:-:

(2)RegionServer

  • RegionServer是Hbase的数据服务进程,它负责处理用户数据的读写请求,所有Region的Flush、Compaction、Open、Close、Load等操作的执行都交由RegionServer管理,所有用户数据的读写请求都和RegionServer管理的Region交互。Region还可以在RegionServer之间发生转移。

:-:

  • RegionServer需要定期将在线状态的Region信息、内存使用状态等自身情况的信息汇报给HMaster。还可以管WAL,并可以执行数据更新、删除以及插入操作。RegionServer还通过Metrics对外提供衡量Hbase内部服务状况的参数。RegionServer还内置了HttpServer,所以用户可以通过图形界面的方式访问Hbase

(3)HMaster

  • HMaster进程负责管理所有的RegionServer,具体内容包括如下:
    • 新RegionServer的注册
    • 负责一些集群操作以及表的创建、修改和删除
    • 在创建新表时分配Region
    • 运行期间保证集群负载均衡
  • HMaster进程有主备角色,集群可以根据需要配置多个HMaster角色。集群启动时,HMaster角色通过竞争获得主Master角色。主HMaster角色只能有一个,所有的备HMaster进程在集群运行期间出于休眠状态,不干涉任何集群的事务。可以控制RegionServer的故障转移和Region的切分。

相关文章

微信公众号