相关文章链接:
http://blog.csdn.net/firstephen/article/details/9256715
http://www.binospace.com/index.php/hbase-in-depth-analysis-of-the-regionserver/
1、调用自身HRegionServer构造函数
2、生成memstoreFlush、split、compaction等线程
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跟踪root表meta表和region的状态
SplitlogWorker竞争获取znode上的splitlog,并切分HLog按照region分组,放到相应region
的recovered.edits目录下
2.region相关的线程
regionserver包含了一个region的集合,每个具体的操作会分到一个指定的region去处理
CompactionChecker用于周期性的检查是否需要compact,如需要交给CompactSplitThread处理
CompactSplitThread用于合并和切分处理的线程
MemStoreFlusher如果memstore满了则flush到HDFS中
3.WAL相关
HLog按照hbase的架构,一个regionserver只有一个hlog,多个region是共享的
LogRoller用于日志回滚
4.和客户端通讯
RPC server模块,这里包含了很多线程,listener,select,handler线程
Leases 用于租借时间检查
5.和master及监控相关
HMasterRegionInterface用户管理hbase
HServerLoad检查hbase负载,并和master通讯
HealthCheckChore服务的监控检查
RegionServerMetrics 获取metrics相关的数据
web server,启用一个jettyserver,可以监控region相关的信息