相关文章链接:
http://blog.csdn.net/hanhuili/article/details/19080583
http://blog.csdn.net/firstephen/article/details/9256715
http://xxniao.iteye.com/blog/2195200
1、HMaster自身构造函数
1.1、获取当前运行HMaster的机器地址
1.2、生成ZKWatcher对象,管理如下几个ZNode节点
baseZNode "/hbase"
rsZNode "/hbase/rs"
drainingZNode "/hbase/draining"
assignmentZNode "/hbase/unassigned"
tableZNode "/hbase/table"
splitLogZNode "/hbase/splitlog"
schemaZNode "/hbase/schema"
2、生成ActiveMasterManager对象,等待自身成为active master,并在ZNode中创建节点/hbase/master
3、生成AssignmentManager
4、生成LoadBalancer
5、生成RegionserverTracker
6、等待RegionServer的注册
7、splitLogAfterStartup
HMaster的整体结构
一个master包含如下部分:
1.对外的接口
RPC服务
jetty web服务
Master MBean
其中RPC服务包括了若干listener,reader,以及handler线程(IPC Handler和用于replication的IPC Handler)
2.执行服务
都是一些线程池,当有任务出现时就就会交给这些类来处理
这些线程有
MASTER_SERVER_OPERATIONS
MASTER_META_SERVER_OPERATIONS
MASTER_CLOSE_REGION
MASTER_OPEN_REGION
MASTER_TABLE_OPERATIONS
相关的hanlder有:
OpenRegionHandler
ClosedRegionHandler
ServerShutdownHandler
MetaServerShutdownHandler
DeleteTableHandler
DisableTableHandler
EnableTableHandler
ModifyTableHandler
CreateTableHandler