`
run_xiao
  • 浏览: 195389 次
  • 性别: Icon_minigender_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,重启等

分享到:
评论

相关推荐

    hbase-1.2.6-bin+src.tar.rar

    三、HBase源码解析 3.1 数据模型 HBase的数据模型在源码中主要体现在`org.apache.hadoop.hbase.regionserver`包下的`Region`类,它是实际存储数据的单元,包含对行、列的管理。 3.2 操作API 客户端与HBase交互的...

    hbase-1.1.6-bin.tar.gz

    3. **Zookeeper协调**:Zookeeper在HBase中起到关键作用,它负责监控HMaster和HRegionServer的状态,以及在集群中进行配置信息的同步,保证系统的稳定运行。 4. **Region分裂**:随着数据量的增长,单个Region可能...

    hbase-0.94.13 jar和源码

    通过阅读源代码,我们可以深入理解HBase的工作原理,学习其内部的数据模型、数据分布策略、Region分裂和合并、故障恢复机制等核心概念。这对于优化HBase应用性能、解决实际问题以及贡献代码到HBase项目本身都是非常...

    hbase源码包和测试用例

    《深入理解HBase:源码剖析与测试实践》 HBase,全称为Hadoop Database,是一种基于Apache Hadoop的开源分布式非关系型数据库。它的设计灵感来源于Google的Bigtable,旨在处理大规模数据集,通常在PB级别以上。...

    HBase源代码 hbase-0.98.23

    在HBase的分布式架构中,`org.apache.hadoop.hbase.client.HConnectionManager`负责管理客户端与HBase服务器之间的连接,而`org.apache.hadoop.hbase.regionserver.HRegionServer`是处理Region服务的主要组件,它...

    Hbase1.3.1源码

    源码中对应的实现类是`org.apache.hadoop.hbase.regionserver.HRegionServer`和`org.apache.hadoop.hbase.master.HMaster`。 4. **Region划分**:HBase将表数据划分为多个Region,每个Region包含一个或多个Column ...

    HBase源码分析

    《深入剖析HBase源码:理解其核心机制》 HBase,作为一款基于分布式存储的NoSQL数据库,广泛应用于大数据领域。它构建于Hadoop之上,利用HDFS提供高可靠性和高可扩展性。本文将深入探讨HBase的实现原理,特别是其...

    hbase-2.0.0.3.0.0.0-1634-bin.tar.gz

    2. 源码获取:从Apache官方网站或者通过Git克隆源码仓库,获取HBase 2.0.0.3.0.0.0-1634的源码。 3. 编译过程:进入源码目录,运行`mvn clean install -DskipTests`命令进行编译。这个过程可能需要一段时间,因为...

    Hbase权威指南 随书源代码 源码包 绝对完整版

    在研究HBase源码时,我们可以关注以下几个核心概念和组件: 1. **Region服务器**:HBase的主要工作单元,负责存储和处理表的数据。每个Region服务器管理多个Region,Region包含表的一部分行。 2. **Region**:...

    hbase权威指南源码

    2. **HBase架构**:源码中可能包括HMaster、HRegionServer、Zookeeper等核心组件的实现,帮助理解HBase如何进行区域分配、故障恢复和集群管理。 3. **表和列族**:源码可能包含创建、修改和删除表的示例,以及对列...

    最近很火的大数据Hadoop之Hbase0.99.2最新版源码

    通过对`HMaster`类的源码阅读,我们可以了解到这些关键功能的具体实现。 其次,RegionServer是HBase的存储和计算单元,它直接与客户端交互,执行数据的读写操作。`HRegionServer`类是其核心,包含了Region的生命...

    hbase介绍、安装

    6. **启动HBase**:执行`start-hbase.sh`命令启动HBase,使用`jps`检查是否成功启动了HMaster和HRegionServer进程。 7. **测试HBase**:使用HBase shell或通过Java API进行简单的增删查改操作,验证HBase安装是否...

    细细品味Hadoop_Hadoop集群(第11期)_HBase简介及安装.pdf

    3. **下载 HBase**:从官方网站下载 HBase 的二进制包或源码包。 4. **配置 HBase**:配置 HBase 的核心参数,包括 HBase-site.xml、hbase-env.sh 等文件。 5. **启动 HBase**:按照文档指示启动 HBase 服务,包括...

    Hbase学习分享

    对于深入理解HBase的工作原理,源码阅读是必不可少的。通过源码,我们可以了解到HBase如何处理客户端请求、如何在Region服务器之间分配和迁移数据、以及如何实现分布式协调等核心功能。例如,`HMaster`是HBase的主...

    smoketest-hbase:HBase 的一些冒烟测试

    在压缩包“smoketest-hbase-master”中,我们可以推测这是包含HBase冒烟测试源码的主分支。"master"通常指的是开发中的主要分支,意味着这些测试是最新的,反映了当前HBase的主要功能和行为。 HBase的冒烟测试可能...

    hbasePCA-LBP-masterdemo

    HBase的安装通常涉及下载源码或二进制包,配置环境变量,初始化HBase集群,以及启动相关服务。简单操作可能包括创建表、插入数据、查询数据、删除数据等基本操作。 【标签】"opencv"表明这个项目可能使用了OpenCV库...

    尚硅谷大数据技术之Atlas元数据管理1

    4. 安装HBase集群,启动HMaster和HRegionServer。 5. 安装Solr,注意版本需为5.2.1,解压并配置。 6. 除了这些基础服务,还需要安装MySQL,因为Atlas的配置信息通常存储在MySQL数据库中。 安装完成后,配置Atlas以...

    zookeeper讲义

    - **HBase**:在HBase中,Zookeeper用来确保集群中只有一个HMaster运行,并且能够感知HRegionServer的在线和离线状态,以及存储访问控制列表等。 #### 六、Zookeeper的特性 - **简洁性**:Zookeeper的API设计非常...

Global site tag (gtag.js) - Google Analytics