HMaster
监控所有的RegionServer,一般运行在namenode
架构图
从图中可以看出,主要有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的二级索引的时候一般会用到。
参考资料
转载请注明出处:http://my.oschina.net/serverx