HMaster功能与启动

    xiaoxiao2021-04-12  61

    相关文章链接:

    http://blog.csdn.net/hanhuili/article/details/19080583

    http://blog.csdn.net/firstephen/article/details/9256715

    http://xxniao.iteye.com/blog/2195200

     

    1HMaster自身构造函数

    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服务包括了若干listenerreader,以及handler线程(IPC Handler用于replicationIPC 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代码  

    1.ActiveMasterManager   会在ZK中创建/hbase/master短暂节点,master将其信息记录到这个节点下   如果是备份的master会在这里阻塞,直到这个节点为空      2.RegionServerTracker   用于监控region server,通过监控ZK/hbase/rs节点,获取region server的状态   当region server上线或者下线,ZK都会触发通知事件      3.DrainingServerTracker   没太明白,貌似是处理RS增加和删除事件用的      4.CatalogTracker   用来监控META表和ROOT表      5.ClusterStatusTracker   用于监控ZK的/shutdown节点,监控是否有机器宕机了      6.AssignmentManager   用于管理和分配region的      7.RootRegionTracker   用于管理和监控/root-region-server 节点的      8.LoadBalancer   用于平衡各个regoin server上的region      9.MetaNodeTracker   监控/unassigned 节点,分配那些未在META表中存在的region      此外在 org.apache.hadoop.hbase.zookeeper.ZooKeeperWatcher类中还负责管理一些ZK节点   baseZNode           /hbase   assignmentZNode         /unassigned   rsZNode             /rs   drainingZNode           /draining   masterTableZNode        /table   masterTableZNode92      /table92    (用于hbase0.92版本)   splitLogZNode           /splitlog   backupMasterAddressesZNode  /backup-masters   clusterStateZNode       /shutdown   masterAddressZNode      /master   clusterIdZNode              /hbaseid  

     

    ZK监听相关的类图

    4.文件接口和其他

    MasterFileSystem

    用于创建META表和ROOT表,.oldlog目录,hbase.version文件等

     

    LogCleaner

    用于定期的清理.oldlog目录中的内容

     

    HFileCleaner

    用于定期清理归档目录下的内容

     

    其他包括后台线程如LogCleanerHFileCleaner

    ServerManager 维护一个在线和下线的RS列表

    Balancer 用于执行region均衡的后台线程

    转载请注明原文地址: https://ju.6miu.com/read-668164.html

    最新回复(0)