HBase之HMaster工作原理

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

HMaster

监控所有的RegionServer,一般运行在namenode

架构图

HBase之HMaster工作原理_第1张图片

从图中可以看出,主要有External Interfaces、Executor Services、Zookeeper System Trackers、File System Interfaces、Chores和Others六部分组成

1. External Interfaces

查询regionserver机群状态

  • InfoServer, 一个jetty部署的web应用,默认端口60010,查看集群状态。
  • RpcServer,提供rpc与master的通信方式,支持Writable和protobuf。
  • Master MXBean,提供JMX查询状态metrics,知道有就好,一般也用不上。

2. Executor Services

监听Zookeeper的消息队列,交给各种handler处理

  • Open Region Service,当master监测到一个region成功运行(通过ZK的watch机制),发送一个消息RS_ZK_REGION_OPENED给这个service,这个事件会触发OpenRegionHandler()方法。
  • Close Region Service,(同上,消息为:RS_ZK_REGION_CLOSED)
  • Server Operations Service, master检测到有region需要split,交给SplitRegionHandler处理,同时,master需要关闭一个region(非root或meta),发送一条消息:M_SERVER_SHUTDOWN ,交给ServerShutdownHandler处理
  • Meta Server Operation Service,当关闭的region是ROOT或者META的宿主机,
  • Table Operation Service,对表的删除、disable、enable、修改、创建,

3. Zookeeper System Trackers

master或者regionServer是通过zokeeper实现跟踪特定的消息事件

  • Active Master Manager,处理master的所有时间,包括master的选举
  • Region Server Tracker,维护region的一个list,挂载到/hbase/rs目录下,任何region的新增和删除,都在这个目录下
  • Drainning Server Tracker,region server退役之后,转变成draining Server挂载在/hbase_root/draining
  • Catalog Tracker,-ROOT或者.META
  • Cluster Status Tracker,集群是否正常启动
  • Assignment Manager,当master挂掉之后,可以通过这里找到过渡时期的region
  • Root Region Tracker,监控root的位置和状态变化
  • Load Balance,决定是否要在RegionServer之中移动Region
  • Meta Node Tracker
  • Master Address Tracker

4. File System Interfaces

与底层的文件系统打交道的接口

  • MasterFileSystem,抽象的一个文件系统
  • Log Cleaner,一个后台任务(chores),默认有两个TimeToLiveLogCleaner和ReplicationLogCleaner,可以自己实现,添加到配置中。
  • HFile Cleaner一个HBase内置的周期性的任务。默认有一个TimeToLiveHFileCleaner在执行,可以自己实现,添加到配置中。

5. Chores

一些后台自动运行的任务

  • Balancer Chore,用来平衡hdfs机群的datanode是否平衡,有一个可配置的阈值,一般是10%,会检查所有node的使用率,自动迁移blocks。
  • Catalog Janitor Chore,一个检查catelog的任务,查看未使用的regions,进行垃圾回收
  • Log Cleaner Chore(同上)
  • HFile Cleaner Chore (同上)

6. Others

其他

  • Server Manager,维护regionserver的信息,维护online和dead的server,处理regionServer的启动、关闭、死亡
  • Co-Processor Host,通用的框架和Hbase服务调用,自己实现hbase的二级索引的时候一般会用到。

参考资料

HBase官方文档

HMaster介绍文档


转载请注明出处:http://my.oschina.net/serverx

转载于:https://my.oschina.net/serverx/blog/665500

你可能感兴趣的:(HBase之HMaster工作原理)