HBase 高可用集群详细图文安装部署

一、HBase 安装部署

HBase 高可用集群详细图文安装部署

1.1 Zookeeper 正常部署

首先保证 Zookeeper 集群的正常部署,并启动之。

1.2 Hadoop 正常部署 

Hadoop 集群的正常部署并启动。

1.3 HBase 安装 

HBase 官方下载地址:Apache Download Mirrors

(base) [root@hadoop01 ~]# ls
hbase-2.5.6-bin.tar.gz
 
# 解压 Hbase 到指定目录
(base) [root@hadoop01 ~]# tar -zxvf hbase-2.5.6-bin.tar.gz -C /bigdata/
(base) [root@hadoop01 ~]# cd /bigdata/
(base) [root@hadoop01 /bigdata]# mv hbase-2.5.6 hbase
 
# 配置环境变量
(base) [root@hadoop01 /bigdata]# vim /etc/profile
# hbase
export HBASE_HOME=/bigdata/hbase
export PATH=$PATH:$HBASE_HOME/bin
 
# 使用 source 让配置的环境变量生效
(base) [root@hadoop01 /bigdata]# source /etc/profile

1.4 HBase 的配置文件 

1.4.1 hbase-env.sh 

[root@hadoop01 /bigdata]# cd /bigdata/hbase/conf/
[root@hadoop01 /bigdata/hbase/conf]# vim hbase-env.sh 
 
# 关闭 hbase 自带zk,使用自己搭建的 zookeeper 集群
export HBASE_MANAGES_ZK=false
# 设定 hbase 的内存为 2G,生产环境中可开启设置
#export HBASE_HEAPSIZE=2G
# 增加系统环境配置, 必须在/etc/profile定义JAVA_HOME
source /etc/profile
export JAVA_HOME=/usr/java/jdk1.8.0_381
# 存放 PID 文件的目录
export HBASE_PID_DIR=/bigdata/hbase/pids
# 避免 master 启动报错类冲突
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"

1.4.2 hbase-site.xml

[root@hadoop01 /bigdata/hbase/conf]# vim hbase-site.xml
<!-- hbase 在 hdfs 中的存储位置, 如果 hdfs 是 ha 模式, 那就把 hadoop01 换成逻辑集群名(比如我的是 mycluster,可在你的 hadoop 配置文件 core-site.xml 查看) 并且创建 hdfs-site.xml 软连接 -->
  <!-- hbase 在 hdfs 中的存储位置 -->
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop01/hbase</value>
  </property>
 
  <!-- 开启 hbase 的全分布式 -->
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
 
  <!-- zookeeper 的端口号 -->
  <property>
    <name>hbase.zookeeper.property.clientPort</name>
    <value>2181</value>
  </property>
 
  <!-- zookeeper 集群的主机名 -->
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop01,hadoop02,hadoop03</value>
  </property>
 
  <!-- hbase 的临时文件存储路径 -->
  <property>
    <name>hbase.tmp.dir</name>
    <value>/bigdata/hbase/tmpdata</value>
  </property>
 
  <!-- 开启配置防止 hmaster 启动问题 -->
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
 
  <!-- 监控页面端口 -->
  <property>
    <name>hbase.master.info.port</name>
    <value>60010</value>
  </property>

1.4.3 regionservers

[root@hadoop01 /bigdata/hbase/conf]# vim regionservers 
hadoop01
hadoop02
hadoop03

1.4.4 创建目录

[root@hadoop01 ~]# mkdir -p /bigdata/hbase/tmpdata
 
# 如果 hadoop 是集群模式(HA 模式),则执行以下步骤
(base) [root@hadoop01 ~]# ln -s /bigdata/hadoop/server/hadoop-3.2.4/etc/hadoop/core-site.xml /bigdata/hbase/conf/core-site.xml
(base) [root@hadoop01 ~]# ln -s /bigdata/hadoop/server/hadoop-3.2.4/etc/hadoop/hdfs-site.xml /bigdata/hbase/conf/hdfs-site.xml

1.5 HBase 远程发送到其他节点

[root@hadoop01 ~]# scp -r /bigdata/hbase 192.168.170.137:/bigdata/hbase
[root@hadoop01 ~]# scp -r /bigdata/hbase 192.168.170.138:/bigdata/hbase
 
# 并修改 /etc/profile 环境变量(其他节点),同 1.3 的步骤一样

1.6 HBase 服务的启动 

单点启动(推荐)
# 只启动本节点 master
hbase-daemon.sh start master
 
# 启动所有从节点
hbase-daemon.sh start regionserver

群启
# 只启动本机器的 master 和所有机器的从节点, 不推荐, 推荐使用 daemon 脚本
start-hbase.sh
 

停止服务
# 只停止本节点的 master 和所有节点的 regionserver
stop-hbase.sh

1.7 查看 HBase 页面 

启动成功后,可以通过 “192.168.170.136:60010” 的方式来访问 HBase 管理页面,例如:

HBase 高可用集群详细图文安装部署

1.8 高可用(推荐)
在 HBase 中 HMaster 负责监控 HRegionServer 的生命周期,均衡 RegionServer 的负载,如果 HMaster 挂掉了,那么整个 HBase 集群将陷入不健康的状态,并且此时的工作状态并不会维持太久。所以 HBase 支持对 HMaster 的高可用配置。

# 可以随意选择任意一个节点作为 Backup Master,这里我以 hadoop02节点
(base) [root@hadoop02 /bigdata/hbase/conf]# hbase-daemon.sh start master
(base) [root@hadoop02 /bigdata/hbase/conf]# jps
1570 DataNode
35123 Jps
1701 JournalNode
34694 HRegionServer
1865 DFSZKFailoverController
2009 ResourceManager
2121 NodeManager
1338 QuorumPeerMain
1466 NameNode
35050 HMaster

访问 Backup Master 页面:192.168.170.137:60010

HBase 高可用集群详细图文安装部署

刷新 hadoop01 页面:

HBase 高可用集群详细图文安装部署

至此 HBase 高可用集群部署完毕! 

二、HBase 集群扩缩容

在新节点初始化并拷贝安装目录。

# 在新节点启动 master
hbase-daemon.sh start regionserver
 
# 修改各节点的 conf/regionservers,增加新节点的 ip
vi conf/regionservers
 
# 进入 hbase shell, 开启重新分配 region 数据, 这是hbase的一个周期性工作, 默认 5 分钟
hbase shell
balance_switch true
 
# 执行命令查看当前 hbase 的负载均衡 balance 是否开启
# 注意这个命令没有写错, 不是 balance_switch status, status 是将 balance 状态强制转换为 false
balancer_enabled
 
# 立即进行一次均衡操作
# 当前各节点的 region 数量可以在前端页面查看
balancer

文章来源:https://www.cnaaa.net,转载请注明出处:https://www.cnaaa.net/archives/10593

(0)
凯影的头像凯影
上一篇 2023年12月15日 下午2:59
下一篇 2023年12月18日 下午2:35

相关推荐

  • centos7 丢失grub无法启动

    1、使用CentOS7的原版镜像开机从光驱启动 当然你也可以做成启动U盘,从U盘启动 2、选择Troubleshooting->Rescue a CentOS system 3、根据提示先选择1 提示没有找到任何Linux分区,这时会进入shell 4、发现LVM逻辑卷 可以看到/dev/sda2为LVM2_member 5、挂载故障根分区到/mnt/sys…

    2023年7月20日
    1.4K00
  • linux查看某个文件夹的大小(ls命令、du命令详解)

    ls 命令:列出当前工作目录下的所有文件/文件夹的名称 使用ls -l,会显示成字节大小,ls- lh会以KB、MB等为单位进行显示更加直观。 du 命令:查看当前目录和子目录文件夹/文件大小情况 du = disk usage 磁盘使用率,输出每个文件或者目录总大小,其用法如下: du -sh:查看当前目录总大小。 du -sh *:查看当前目录所有子目录…

    2024年5月13日
    1.7K00
  • 通过配置hosts.allow和hosts.deny限制登陆

    我们通常只对管理员开放SSH登录,那我们就可以禁用不必要的IP,而只开放管理员可能使用到的IP段。 /etc/hosts.allow和/etc/hosts.deny两个文件是控制远程访问设置的,通过他可以允许或者拒绝某个ip或者ip段的客户访问linux的某项服务。 我们通常只对管理员开放SSH登录,那我们就可以禁用不必要的IP,而只开放管理员可能使用到的I…

    2022年11月15日
    2.1K00
  • Expect解决shell脚本的交互需求

    在linux系统中,shell脚本可以大大提高我们的工作效率。但遇到需要交互的场景时,shell脚本却无法解决。 简介 Expect语言是基于Tcl的。Tcl实际上是一个子程序库,这些子程序库可以嵌入到程序里从而提供语言服务。 最终的语言有点象一个典型的 Shell语言。里面有给变量赋值的set命令,控制程序执行的if,for,continue等命令,还能进…

    2022年11月15日
    1.3K00
  • Windows设置多用户同时远程登录

    在我们日常使用Windows系统的服务器时,有时候一台服务器需要多用户同时在线使用,但是Windows系统默认的是单用户模式的,不过它也支持多用户同时在线,就是需要我们去设置一下即可: 1、在键盘上按Win+R键(也可以在开始菜单右键然后选择运行),在运行的输入框里面输入”gpedit.msc”命令、然后点击确定 2、在“计算机组策略…

    2022年6月14日
    1.8K00

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线咨询: QQ交谈

邮件:712342017@qq.com

工作时间:周一至周五,8:30-17:30,节假日休息

关注微信