首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 互联网 >

HBase源码阅览-3-HRegionServer

2012-08-30 
HBase源码阅读-3-HRegionServer3.HRegionServer:管理regions,并向HMaster报告自己状态??? ??? ??? ??? 3.1

HBase源码阅读-3-HRegionServer

3.HRegionServer:管理regions,并向HMaster报告自己状态??? ???
??? ??? 3.1 regionserver启动过程
??? ??? ??? (1)读取一些配置:机器名,端口,客户端重试次数,与master交互间隔,rpc超时
??? ??? ??? (2)创建Worker线程处理来自master的请求(????)
??? ??? ??? (3)创建一个HBaseServer的实例提供IPC服务以处理Client的请求
??? ??? ??? (4)创建HServerInfo实例保持regionserver信息:地址,机器名,监听端口等
??? ??? ??? (5)创建Flush缓存的线程
??? ??? ??? (6)创建Compact和Split region的线程
??? ??? ??? (7)创建归档(roll)HLog的线程
??? ??? ??? (8)定期检查regions是否需要major compaction线程
??? ??? ??? (9)regionserver与外部client交互时,会申请一些资源,当外部client失败后需释放这些资源。创建Leases线程来处理这个任务。
??? ??? ??? (10)创建ZooKeeper实例,以连接zookeeper集群,并增加/hbase/master节点的Watcher
??? ??? ??? (11)申请一部分heap空间(4个byte数组,每个5M,共20M),保留下来,在发生OOME时再释放以从异常中恢复
??? ??? ??? (12)启动regionserver并安装shut down hooks(?????????)
??? ??? ???
??? ??? 3.2 HRegionServer.run()???
??? ??? ??? (1)向master报告自己的状态:reportForDuty()方法
??? ??? ??? ??? 从zookeeper的/hbase/master节点获取master地址,通过HBaseRPC获得HMasterRegionInterface接口实现的代理;
??? ??? ??? ???
??? ??? ??? ??? 从MemoryMXBean获取内存使用信息,计算其负载,并保存到HServerInfo实例中;
??? ??? ??? ???
??? ??? ??? ??? 调用HMasterRegionInterface.regionServerStartup(),告诉master该regionserver已启动,
??? ??? ??? ??? 该接口返回一个MapWritable,包含hbase.regionserver.address,fs.default.name和hbase.rootdir等master配置信息,
??? ??? ??? ??? 以更新本地配置(HBASE-1215);
??? ??? ??? ???
??? ??? ??? (2)启动一些服务线程???
??? ??? ??? ??? 在文件系统根目录下.logs建立commit log HLog的实例;
??? ??? ??? ??? 后台启动归档(roll)HLog的线程,Flush缓存的线程,Compact和Split region的线程,来自master请求的worker线程,检查regions是否需要major compaction线程
??? ??? ??? ??? 启动Leases线程;
??? ??? ??? ??? 启动Jetty Server,处理http请求
??? ??? ??? ???
??? ??? ??? (3)当服务线程正常运行(isAlive()),则在hbase.regionserver.msginterval间隔后与master交换信息:
??? ??? ??? ??? 收集regionserver的metrics,包括:HStore,HStoreFile,索引,所有region的内存大小,block缓存的命中率等信息,regionserver负载信息;
??? ??? ??? ??? 通过PRC向master发送信息HMsg,并返回master的指令,指令类型有:stop regionserver,停止服务用户regions,重启等

热点排行