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,重启等

Stkcd [股票代码] ShortName [股票简称] Accper [统计截止日期] Typrep [报表类型编码] Indcd [行业代码] Indnme [行业名称] Source [公告来源] F060101B [净利润现金净含量] F060101C [净利润现金净含量TTM] F060201B [营业收入现金含量] F060201C [营业收入现金含量TTM] F060301B [营业收入现金净含量] F060301C [营业收入现金净含量TTM] F060401B [营业利润现金净含量] F060401C [营业利润现金净含量TTM] F060901B [筹资活动债权人现金净流量] F060901C [筹资活动债权人现金净流量TTM] F061001B [筹资活动股东现金净流量] F061001C [筹资活动股东现金净流量TTM] F061201B [折旧摊销] F061201C [折旧摊销TTM] F061301B [公司现金流1] F061302B [公司现金流2] F061301C [公司现金流TTM1] F061302C [公司现金流TTM2] F061401B [股权现金流1] F061402B [股权现金流2] F061401C [股权现金流TTM1] F061402C [股权现金流TTM2] F061501B [公司自由现金流(原有)] F061601B [股权自由现金流(原有)] F061701B [全部现金回收率] F061801B [营运指数] F061901B [资本支出与折旧摊销比] F062001B [现金适合比率] F062101B [现金再投资比率] F062201B [现金满足投资比率] F062301B [股权自由现金流] F062401B [企业自由现金流] Indcd1 [行业代码1] Indnme1 [行业名称1] 季度数据,所有沪深北上市公司的 分别包含excel、dta数据文件格式及其说明,便于不同软件工具对数据的分析应用 数据来源:基于上市公司年报及公告数据整理,或相关证券交易所、各部委、省、市数据 数据范围:基于沪深北证上市公司 A股(主板、中小企业板、创业板、科创板等)数据整理计算
hbase-client-project-2.4.16.jar是一个用于连接HBase数据库的Java客户端项目。HBase是一个分布式、面向列的NoSQL数据库,它可以存储大规模数据,并提供高可靠性和高性能的数据访问。而hbase-client-project-2.4.16.jar则是用来连接HBase数据库的Java客户端库。通过这个库,开发人员可以在Java应用中方便地访问HBase数据库,进行数据的读取、写入和管理操作。 hbase-client-project-2.4.16.jar库提供了丰富的API,使得开发人员可以编写简洁、高效的代码来操作HBase数据库。通过这个库,可以轻松地建立与HBase集群的连接,创建、删除表格,进行数据的增删改查等操作。此外,hbase-client-project-2.4.16.jar也提供了一些高级特性,比如支持过滤器、批量操作、数据版本控制等功能,让开发人员能够更加灵活地利用HBase数据库进行数据处理。 除此之外,hbase-client-project-2.4.16.jar还支持与HBase的安全认证和权限控制,可以保障数据访问的安全性。开发人员可以使用这个库来编写安全的Java应用,确保对HBase数据库的数据进行合法、受控的访问。 总之,hbase-client-project-2.4.16.jar是一个强大、灵活的Java客户端库,为开发人员提供了便捷的方式来连接、操作HBase数据库。无论是小规模的应用还是大规模的数据处理需求,它都能够满足开发人员的要求,帮助他们更有效地利用HBase数据库。 (字数: 258)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值