RegionServer的整体结构

相关文章链接:

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

http://www.binospace.com/index.php/hbase-in-depth-analysis-of-the-regionserver/

 

1、调用自身HRegionServer构造函数

2、生成memstoreFlushsplitcompaction等线程

3、getMaster()  ,取出"/hbase/master"节点中的数据,向HMaster报告自己启起来后

4、调用handleReportForDutyResponse把自己挂到zookeeper的/hbase/rs节点下

5、启动SplitLogWorker,检测是否有splitLog需要回滚重做

6、周期性的向master汇报regionserver的负载信息等  

 


 

RegionServer的整体结构


一个region server包含了五部分功能:

1.zookeeper相关的线程

    MasterAddressTracker负责捕获master节点的状态

    ClusterStatusTracker追踪hbase集群的状态

    CatalogTracker跟踪rootmeta表和region的状态

    SplitlogWorker竞争获取znode上的splitlog,并切分HLog按照region分组,放到相应region

        recovered.edits目录下

2.region相关的线程

    regionserver包含了一个region的集合,每个具体的操作会分到一个指定的region去处理

    CompactionChecker用于周期性的检查是否需要compact,如需要交给CompactSplitThread处理

    CompactSplitThread用于合并和切分处理的线程

    MemStoreFlusher如果memstore满了则flushHDFS

3.WAL相关

    HLog按照hbase的架构,一个regionserver只有一个hlog,多个region是共享的

    LogRoller用于日志回滚

4.和客户端通讯

    RPC server模块,这里包含了很多线程,listenerselecthandler线程

    Leases 用于租借时间检查

5.master及监控相关

    HMasterRegionInterface用户管理hbase

    HServerLoad检查hbase负载,并和master通讯

    HealthCheckChore服务的监控检查

    RegionServerMetrics 获取metrics相关的数据

    web server,启用一个jettyserver,可以监控region相关的信息

你可能感兴趣的:(做过的技术)