Hbase源码@RegionServer启动

HRegionServer

继承关系

成员变量

private final AtomicLong scannerIdGen = newAtomicLong(0L)

Scanner ID生成器

protected MemStoreFlusher cacheFlusher

         刷新memstore线程

protected CatalogTracker catalogTracker

         跟踪-ROOT-.META.

private RecoveringRegionWatcher recoveringRegionWatcher

         根据Zookeeper监控Region是否恢复状态

protected ReplicationSourceServicereplicationSourceHandler;

protected ReplicationSinkServicereplicationSinkHandler;

         复制服务,如果没有replication,则handler为null

public CompactSplitThreadcompactSplitThread

         合并文件线程

protected Leases leases

         租约

protected ExecutorService service

         Hbase服务操作实例

protected HFileSystem fs

         Hfile系统实例

privateRegionServerStatusService.BlockingInterface rssStub

         调用master的Regionserver状态存根

RpcClient rpcClient

         RPC客户端,用于检查rssStub中的RegionServer状态

RpcServerInterface rpcServer

         处理客户端请求的服务器。默认访问,可以通过测试用例访问

InfoServer infoServer

         Webapp服务器

private MetricsRegionServermetricsRegionServer

         RegionServer参数指标

private SpanReceiverHost spanReceiverHost

        

Chore compactionChecker

         检查合并请求

Chore periodicFlusher

         检查flush

protected volatile HLog hlog

        

protected volatile HLog hlogForMeta

         元数据更新写不同的hlog,如果RegionServer有元数据Region,则该区域不为空。

LogRoller hlogRoller

LogRoller metaHLogRoller

 

private MasterAddressTrackermasterAddressTracker

         跟踪Master地址

private ClusterStatusTrackerclusterStatusTracker

         跟踪集群状态

private SplitLogWorker splitLogWorker

         拆分Log

private final RegionServerAccountingregionServerAccounting

        

final CacheConfig cacheConfig

         缓存配置和Block缓存引用

final MobCacheConfig mobCacheConfig

         mob缓存配置

private HealthCheckChore healthCheckChore

         健康检查

private MovedRegionsCleanermovedRegionsCleaner

         定期清理已移动Region列表线程

private RegionServerCoprocessorHost rsHost

         RegionServer协处理器

private TableLockManager tableLockManager

         用于Region操作锁定的表级锁管理器

成员函数

HRegionServer

功能说明:

         构造函数

函数流程:

         检查压缩编码,通过hbase.regionserver.codecs可以配置编码类,一一检测,判断是否支持其压缩算法;

         设置客户端连接重试次数,(参数:hbase.client.retries.number,默认值:31)

         设置检查regionserver缓冲区大小时间间隔(参数:hbase.server.thread.wakefrequency,默认值:10s)

         设置RegionServer到Master心跳间隔时间(参数:hbase.regionserver.msginterval,默认值:3s)

         创建sleeper对象,用于周期性休眠线程

         设置Nonce标志(参数:hbase.regionserver.nonces.enabled,默认值:true)

         创建Nonce管理器

         设置Scanner结果集返回数据量(参数:hbase.client.scanner.max.result.size,默认值:Long.MAX_VALUE)

         设置Master进行Region数目(参数:hbase.regionserver.numregionstoreport,默认值:10)

         设置RPC shortoperation超时时间(参数:hbase.rpc.shortoperation.timeout,默认值:10000ms)

         设置一次scan操作,客户端得到响应的超时时间(参数:hbase.client.scanner.timeout.period,默认值:60000 ms)

         获取主机名、IP和端口(参数:hbase.regionserver.port,默认值:60020)

         创建rpcSchedulerFactory

         创建rpcServer

         Zk授权登录和Hbase授权登录

         创建regionServerAccounting

         创建cacheConfig

         创建mobCacheConfig

         创建regionserver信息,并设置端口

关键处理流程

构造方法

Regionserver启动


处理流程:

RegionServer启动入口是HRegionServer.main();

生成HRegionServerCommandLine实例,并执行doMain()方法;

ServerCommandLine实例函数doMain调用ToolRunner实例run();

ToolRunner实例函数run()调用HRegionServerCommandLine实例的run()方法;

HRegionServerCommandLine实例run()方法判断参数,如果是start则调用start()函数;

Start()调用如下函数:

logProcessInfo();

constructRegionServer()

startRegionServer()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值