`
run_xiao
  • 浏览: 195378 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

HBase源码阅读-2-HMaster

阅读更多

2.HMaster:实现master的功能
A.负责分配region到regionserver,检测新增或失败的regionserver,与regionserver交互,regionserver间的负载均衡等;
B.处理shcema的变更;
C.实现ZooKeeper的Watcher接口,与zookeeper集群交互

        2.1 master启动过程初始化,构造HMaster实例
            --minServers=:指定最少的RegionServers数,默认为13,(RegionServer机器不够13如何??)
            根据参数hbase.cluster.distributed分local和distribute模式,这里主要考虑distribute模式下:
                (1)设置并检查文件系统路径。(checkRootDir方法)
                    a.如果文件系统处于安全模型,则一直等待直到退出安全模式
                    b.若root路径不存在则会创建该目录,并将当前hbase的文件格式版本号写入hbase.version中,并再下一次启动是会检查
                是否与当前hbase版本支持的文件格式版本一致。
                    c.检查root Region是否存在,即-ROOT-目录是否存在(root region也是当做一个table来统一处理的)。
                不存在,则创建root region和第1个meta region。       
                    root region:regionId=0,tableName=-ROOT-,仅有一个info的Column Family
                    meta region:regionId=1,tableName=.META.,有一个info和historian两个Column Family
                    d.将meta做为root region的user region加入其中(有点拗口)。
                   
                (2)获取master的地址,并创建一个HBaseServer的实例提供RPC服务   
               
                (3)创建一个连接???(HMaster也作为集群的一个客户端,完成schema的变更等功能)
               
                (4)读取classpath下配置的hbase.zookeeper.property.clientPort和hbase.zookeeper.quorum,连接zookeeper集群:创建ZooKeeper实例,并增加Watcher(HMaster)
                    设置/hbase,/hbase/root-region-server,/hbase/rs,/hbase/master,/hbase/master/shutdown等hbase存储在zookeeper中信息的路径
                    将master地址写入/hbase/master(若该Znode存在,则等待直到该节点被删除。谁来删???)
                   
                   
                (5)建立RegionServerOperation队列
               
                (6)启动ServerManager管理region servers的信息
               
                (7)启动RegionManager分配region到region servers,并管理root,meta等状态
               
            2.2 master执行过程,启动线程,执行Thread.run()       
                (1)将master加入集群:
                    从zookeeper的hbase/root-region-server读取root region所在的regionserver;
                    读取所有regionserver地址,若没有regionserver则可能是一个新启动的集群,调用HLog.splitLog(this.rootdir, logDir, oldLogDir, this.fs, getConfiguration())(还没看明白???);
                   
                (2)启动服务线程:
                    启动RegionManager的root和meta region的扫描线程
                        初始扫描后,应知道所有region的分配信息;而region每次分裂后也应通知master,并分配region给新的regionserver;
                        但master可能丢失该split信息,因此周期性的扫描root和meta region以检测丢失的split信息及regionserver的死亡信息
                    启动一个Jetty Server,处理http请求
                    启动RPC服务

0
0
分享到:
评论

相关推荐

    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

    这个压缩包“hbase-1.1.6-bin.tar.gz”包含了HBase 1.1.6版本的源码和可执行文件,是根据《大数据技术原理与应用》第二版教材的要求提供的。在Hadoop的背景下,HBase被广泛用于处理大规模数据,特别是在需要实时读写...

    【No0057】HBase源码解析与开发实战.txt

    ### HBase源码解析与开发实战 #### 一、HBase简介 HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的 Google 论文 “Bigtable:一个结构化数据的分布式存储系统”。就像 Bigtable 利用了...

    hbase 1.2.0源码

    通过对HBase 1.2.0源码的阅读,可以深入了解这些机制的实现细节,比如Region分配算法、数据读写的内部流程、Bloom Filter的构建和使用、以及Compaction策略的设定等。这将有助于开发者更好地优化HBase应用,解决实际...

    hbase源码包和测试用例

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

    HBase源代码 hbase-0.98.23

    此外,HBase的Master节点是整个系统的管理者,`org.apache.hadoop.hbase.master.HMaster`类负责Region的分配、RegionServer的监控和故障恢复。通过分析`org.apache.hadoop.hbase.masterAssignment.RegionStates`和`...

    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实战源码

    通过阅读《HBase实战源码》,读者可以了解到上述组件的实现细节,包括数据存储格式、数据分布策略、并发控制以及各种操作的内部流程。这对于优化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-code-analysis:nosql数据库hbase的源码分析

    《深入剖析HBase源码:探索NoSQL数据库的内在魅力》 HBase,作为Apache软件基金会的一款开源分布式列式存储系统,是构建于Hadoop文件系统之上的NoSQL数据库。它设计的目标是处理大规模的数据集,提供高吞吐量的读写...

    hbase权威指南源码

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

    hbase源码分析

    ### HBase源码分析 #### 一、HBase性能测试要点与分析 ##### 1.1 测试环境 - **硬件配置**: - 客户端:1台 - RegionServer:5台 - Master:1台 - ZooKeeper:3台 - **软件配置**: - CPU:每台服务器配备8...

    Hadoop-2.4.0+Hbase-0.94.18+Nutch-2.3集群爬虫配置攻略

    要将其与Hadoop和Hbase集成,首先需要从GitHub获取最新版本的Nutch-2.x源码,并根据项目文档编译Nutch。 在`conf/nutch-site.xml`中,配置Nutch的基本参数,如抓取间隔、抓取策略等。还需在`conf/hadoop-site.xml`...

    hbase安装,节点添加,移除,常见问题解决

    1. 下载HBase的源码或二进制包。 2. 解压到指定目录,例如`/usr/local/hbase`。 3. 配置HBase的环境变量,如`HBASE_HOME`,并将HBase的bin目录添加到`PATH`环境变量中。 4. 修改`conf/hbase-site.xml`配置文件,设置...

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

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

    《Hbase权威指南》原版

    - **下载源码包或二进制包**:可以从官方网站下载最新的HBase发行版。 - **配置HBase**:编辑`hbase-site.xml`等配置文件,设置如HDFS地址、Zookeeper服务地址等关键参数。 - **启动HBase**:使用命令行工具启动...

Global site tag (gtag.js) - Google Analytics