(七)HBase HA集群模式的安装

目录

一、目的及要求:

实验目的:

实验要求:

二、环境要求:

集群规划:

三、具体步骤:

1、HBase基本安装配置

二:HBase高可用完全分布模式配置

三:同步安装配置以及系统时间

四、所遇问题:

五、总结

一、目的及要求:

实验目的:

  1. 掌握完全分布模式的整合平台中HBase的高可用完全分布模式的安装
  2. HBase的高可用完全分布模式的安装和验证

实验要求:

  1. 完成HBase的高可用完全分布模式的安装
  2. HBase的相关服务进程能够正常启动
  3. HBase控制台能够正常使用
  4. 表创建、数据查询等数据库操作能够正常进行

二、环境要求:

  1. 五台独立PC机或虚拟机
  2. 主机之间有有效的网络连接
  3. 每台主机内存2G以上,磁盘50G
  4. 已安装CentOS 7.4操作系统
  5. 所有主机已完成网络属性配置
  6. 所有主机已安装JDK
  7. 已完成zookeeper集群的安装和部署
  8. 已完成Hadoop集群的安装和部署

软件选用HBase的1.2.3版本,软件包名hbase-1.2.3-bin.tar.gz

集群规划:

HBase有主节点和Region节点2类 服务节点,高可用完全分布模式中需要满足主节点有备用功能的基本要求,所以需要两台或者两台以上的主机作为主节点,而完全分布模式中需要满足Re.0.gion有备份和数据处理能够分布并行的基本需求,所以要两台或者两台以上的主机作为Region节点,具体规划如下:

主机名

IP地址

服务描述

Cluster-01

192.168.10.111

HBase主控节点

Cluster-02

192.168.10.112

HBase备用主控节点

Cluster-03

192.168.10.113

HBase Region服务

Cluster-04

192.168.10.114

HBase Region服务

Cluster-05

192.168.10.115

HBase Region服务

三、具体步骤:

1、HBase基本安装配置

★该项的所有操作步骤使用专门用于集群的用户admin进行

★此项只在一台主机操作,然后在下一步骤进行同步安装与配置

1. 创建存放HBase相关文件的目录,并将所用的软件包解压到该目录下

2. 配置HBase相关的环境变量

3. 生效环境变量,并查看配置是否正确,验证HBase的安装配置是否成功

二:HBase高可用完全分布模式配置

★该项的所有操作步骤使用专门用于集群的用户admin进行

1、在HBase目录下创建HBase的元数据文件目录tmp,和HDFS的日志文件目录logs,进入HBase的配置文件所在目录

2、修改配置文件

修改JAVA_HOME

修改HBASE_CLASSPATH,指定Hadoop的配置文件所在路径

修改HBASE_LOG_DIR,指定日志文件的存放路径

HBASE_MANAGES_ZK,关闭HBase自带的zookeeper组件

3、修改配置文件hbase-site.xml

3、修改配置文件regionservers(删除文件原有内容,加入所要加入的内容)

4、创建配置文件backup-masters,并对配置文件进行修改

三:同步安装配置以及系统时间

★该项的所有操作步骤使用专门用于集群的用户admin进行

1、将hbase目录和.bash_profile文件发给集群中所有主机

2、在每台主机上生效环境变量,并查看配置是否正确,验证HBase的安装配置是否成功

Cluster-02

Cluster-03

Cluster-04

Cluster-05

3、在虚拟机设置上开启时间同步

★时间同步项的所有操作需要使用root用户进行

4、在所有主机上对系统时间进行设置,并将设置的时间同步到硬件时钟(在root用户下进行,并尽可能的在所有主机上将设置时间操作同时进行)

Cluster-01

Cluster-02

Cluster-03

Cluster-04

Cluster-05

四:HBase高可用完全分布模式启动与验证

★该项的所有操作步骤使用专门用于集群的用户admin进行。

★启动HBase集群之前首先确保Zookeeper集群已被开启状态。(实验5台)Zookeeper的启动需要分别在每个计算机的节点上手动启动。如果家目录下执行启动报错,则需要进入zookeeper/bin目录执行启动命令。

★启动HBase集群之前首先确保Hadoop集群已被开启状态。(实验5台)。Hadoop只需要在主节点执行启动命令。

1、启动zookeeper服务,并在所有集群中查看zookeeper服务当前的状态

2、启动Hadoop集群

3、启动HBase集群

4、用jps查看java进程信息

Cluster-01

Cluster-02

Cluster-03

Cluster-04

Cluster-05

5、进入HBase的控制台,并创建表tab1

四、所遇问题:

问题一:

第一次启动HBase时只有Cluster-03,Cluster-04,Cluster-05上面有HRegionServer服务,而Cluster-01,Cluster-02上面没有HMaster

解决方案:

重启虚拟机,再重新启动zookeeper,Hadoop,HBase服务,java进程正常。

问题二:

一段时间以后HBase掉线,重启虚拟机后,重启服务后hbase控制台正常

掉线原因分析:

集群中时间不同步导致zookeeper中存储的hbase信息不一致进而导致hmaster死掉。

hbase的conf目录中没有添加hdfs中的core-site.xml和hdfs-site.xml。logs日志信息显示org.apache.hadoop.hbase.TableExistsExcep-Tion:hbase:namespace异常,可能是更换了hbase版本后zookeeper还保留了上一次的HBASE设置,造成冲突。

解决方案:

1、进入zookeeper的bin目录;      

2、执行客户端脚本:$sh zkCli.sh

3、查看Zookeeper节点信息: ls /   

4、递归删除hbase节点:rmr /hbase

5、退出:quit                       

6、重启Zookeeper

五、总结

一:HBase集群分析

 

REGION:是HBASE中对表进行切割的单元

HMASTER: HBASE的主节点,负责整个集群的状态感知,负载分配、负责用户表的元数据管理 (可以配置多个用来实现HA)

为regionserver分配region,负责regionserver负载均衡

用户对表的增删改查

如果当前的regionserver宕机,会把region迁移

REGION-SERVER: HBASE中真正负责管理region的服务器,也就是负责为客户端进行表数据读写的服务器

维护master给它的region

当这个region过大的情况下,他还负责切分这个过大的region

(负责客户端的IO请求,去hdfs上进行读写数据)

ZOOKEEPER: 整个HBASE中的主从节点协调,主节点之间的选举,集群节点之间的

上下线感知……都是通过zookeeper来实现

Region 存储寻址入口

监控:REGION SERVER 上下线 把这个状态告诉master

存储hbase的schema(当前哪些表,表里有哪些列族)

二:HBase总结

 (1)HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

(2)HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应来源

(3)HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行,HMaster在功能上主要负责Table和Region的管理工作:

  • 管理用户对Table的增、删、改、查操作
  • 管理HRegionServer的负载均衡,调整Region分布
  • 在Region Split后,负责新Region的分配
  • 在HRegionServer停机后,负责失效HRegionServer 上的Regions迁移

(4)HRegionServer

HRegionServer主要负责响应用户I/O请求,向HDFS文件系统中读写数据,是HBase中最核心的模块。

HRegionServer内部管理了一系列HRegion对象,每个HRegion对应了Table中的一个 Region,HRegion中由多个HStore组成。每个HStore对应了Table中的一个Column Family的存储,可以看出每个Column Family其实就是一个集中的存储单元,因此最好将具备共同IO特性的column放在一个Column Family中,这样最高效。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值