相关文章链接:
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
Executor Service |
Event |
Event Handler |
Threads (Default) |
Master Open Region |
RS_ZK_REGION_OPENED |
OpenRegionHandler |
5 |
Master Close Region |
RS_ZK_REGION_CLOSED |
ClosedRegionHandler |
5 |
Master Server Operations
|
RS_ZK_REGION_SPLITM_SERVER_SHUTDOWN |
SplitRegionHandlerServerShutdownHandler |
3 |
Master Meta Server Operations |
M_META_SERVER_SHUTDOWN |
MetaServerShutdownHandler |
5 |
Master Table Operations
|
C_M_DELETE_TABLE C_M_DISABLE_TABLE C_M_ENABLE_TABLE C_M_MODIFY_TABLE C_M_CREATE_TABLE |
DeleteTableHandler DisableTableHandler EnableTableHandler ModifyTableHandler CreateTableHandler |
1
|
3.和zookeeper相关的线程
Java代码
ZK监听相关的类图
4.文件接口和其他
MasterFileSystem
用于创建META表和ROOT表,.oldlog目录,hbase.version文件等
LogCleaner
用于定期的清理.oldlog目录中的内容
HFileCleaner
用于定期清理归档目录下的内容
其他包括后台线程如LogCleaner和HFileCleaner等
ServerManager 维护一个在线和下线的RS列表
Balancer 用于执行region均衡的后台线程