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服务
分享到:
相关推荐
HBase(hbase-2.4.9-bin.tar.gz)是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System...
hbase的hbase-1.2.0-cdh5.14.2.tar.gz资源包
phoenix-hbase-2.2-5.1.2-bin.tar.gz
赠送jar包:hbase-hadoop-compat-1.1.3.jar; 赠送原API文档:hbase-hadoop-compat-1.1.3-javadoc.jar; 赠送源代码:hbase-hadoop-compat-1.1.3-sources.jar; 赠送Maven依赖信息文件:hbase-hadoop-compat-1.1.3....
赠送jar包:hbase-prefix-tree-1.1.3.jar; 赠送原API文档:hbase-prefix-tree-1.1.3-javadoc.jar; 赠送源代码:hbase-prefix-tree-1.1.3-sources.jar; 赠送Maven依赖信息文件:hbase-prefix-tree-1.1.3.pom; ...
赠送jar包:hbase-metrics-api-1.4.3.jar; 赠送原API文档:hbase-metrics-api-1.4.3-javadoc.jar; 赠送源代码:hbase-metrics-api-1.4.3-sources.jar; 赠送Maven依赖信息文件:hbase-metrics-api-1.4.3.pom; ...
赠送jar包:hbase-hadoop-compat-1.1.3.jar; 赠送原API文档:hbase-hadoop-compat-1.1.3-javadoc.jar; 赠送源代码:hbase-hadoop-compat-1.1.3-sources.jar; 赠送Maven依赖信息文件:hbase-hadoop-compat-1.1.3....
赠送jar包:hbase-common-1.4.3.jar; 赠送原API文档:hbase-common-1.4.3-javadoc.jar; 赠送源代码:hbase-common-1.4.3-sources.jar; 赠送Maven依赖信息文件:hbase-common-1.4.3.pom; 包含翻译后的API文档:...
被编译的hive-hbase-handler-1.2.1.jar,用于在Hive中创建关联HBase表的jar,解决创建Hive关联HBase时报FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org.apache.hadoop....
phoenix-client-hbase-2.2-5.1.2.jar
HBase 元数据修复工具包。 ①修改 jar 包中的application.properties,重点是 zookeeper.address、zookeeper.nodeParent、hdfs....③开始修复 `java -jar -Drepair.tableName=表名 hbase-meta-repair-hbase-2.0.2.jar`
hbase-2.2.6-bin.tar.gz HBase是一个分布式的、面向列的开源数据库,该技术来源于 Fay Chang 所撰写的Google论文“Bigtable:一个结构化数据的分布式存储系统”。就像Bigtable利用了Google文件系统(File System)所...
hbase-1.2.1-bin.tar.gz.zip 提示:先解压再使用,最外层是zip压缩文件
phoenix-hbase-1.4-4.16.1-bin
hbase-2.0.2-bin.tar
Hbase-1.2.4-bin.tar.gz,HBASE的Linux版安装包。Hadoop学习必备
hbase-2.4.17-bin 安装包
hbase-2.0.5-bin.tar.gz
赠送jar包:hbase-common-1.1.2.jar; 赠送原API文档:hbase-common-1.1.2-javadoc.jar; 包含翻译后的API文档:hbase-common-1.1.2-javadoc-API文档-中文(简体)-英语-对照版.zip 对应Maven信息:groupId:org....