Hadoop生态圈框架部署(六)- HBase完全分布式部署

文章目录

  • 前言
  • 一、Hbase完全分布式部署(手动部署)
    • [1. 下载Hbase](#1. 下载Hbase)
    • [2. 上传安装包](#2. 上传安装包)
    • [3. 解压HBase安装包](#3. 解压HBase安装包)
    • [4. 配置HBase配置文件](#4. 配置HBase配置文件)
      • [4.1 修改hbase-env.sh配置文件](#4.1 修改hbase-env.sh配置文件)
      • [4.2 修改hbase-site.xml配置文件](#4.2 修改hbase-site.xml配置文件)
      • [4.3 修改regionservers配置文件](#4.3 修改regionservers配置文件)
      • [4.4 删除hbase中slf4j-reload4j-1.7.33.jar文件](#4.4 删除hbase中slf4j-reload4j-1.7.33.jar文件)
    • [5. 虚拟机hadoop2安装并配置HBase](#5. 虚拟机hadoop2安装并配置HBase)
    • [6. 虚拟机hadoop3安装并配置HBase](#6. 虚拟机hadoop3安装并配置HBase)
    • [7. 配置HBase系统环境变量](#7. 配置HBase系统环境变量)
      • [7.1 配置虚拟机hadoop1的HBase环境变量](#7.1 配置虚拟机hadoop1的HBase环境变量)
      • [7.2 配置虚拟机hadoop2的HBase环境变量](#7.2 配置虚拟机hadoop2的HBase环境变量)
      • [7.3 配置虚拟机hadoop3的HBase环境变量](#7.3 配置虚拟机hadoop3的HBase环境变量)
    • [8. 启动HBase集群](#8. 启动HBase集群)
    • [9. 进入HBase客户端](#9. 进入HBase客户端)
    • [10. 访问 HBase 的 Web UI 页面](#10. 访问 HBase 的 Web UI 页面)
      • [10.1 访问 Master 的 UI 页面](#10.1 访问 Master 的 UI 页面)
      • [10.2 访问 RegionServer 的 UI 页面](#10.2 访问 RegionServer 的 UI 页面)
    • [11. 停止HBase集群](#11. 停止HBase集群)
  • 二、使用shell脚本自动部署Hbase完全分布式(选看)
    • [1. 下载Hbase](#1. 下载Hbase)
    • [2. 上传安装包](#2. 上传安装包)
    • [3. 使用shell脚本自动部署Hbase完全分布式](#3. 使用shell脚本自动部署Hbase完全分布式)
      • [3.1 创建 hadoop1_hbase_install_config.sh 脚本文件并添加脚本内容](#3.1 创建 hadoop1_hbase_install_config.sh 脚本文件并添加脚本内容)
      • [3.2 添加可执行权限](#3.2 添加可执行权限)
      • [3.3 执行脚本](#3.3 执行脚本)
    • [4. 加载环境变量](#4. 加载环境变量)
    • [5. 启动HBase集群](#5. 启动HBase集群)
    • [6. 进入HBase客户端](#6. 进入HBase客户端)
    • [7. 访问 HBase 的 Web UI 页面](#7. 访问 HBase 的 Web UI 页面)
      • [7.1 访问 Master 的 UI 页面](#7.1 访问 Master 的 UI 页面)
      • [7.2 访问 RegionServer 的 UI 页面](#7.2 访问 RegionServer 的 UI 页面)
    • [8. 停止HBase集群](#8. 停止HBase集群)

前言

随着大数据技术的不断发展,HBase 作为 Hadoop 生态系统中的重要组件,因其出色的性能和可扩展性而受到广泛欢迎。本文将详细介绍 HBase 在完全分布式环境下的安装与配置过程。我们将从环境准备、软件下载、配置文件修改到集群启动等多个环节进行逐一讲解,确保读者能够顺利搭建起自己的 HBase 分布式集群。通过本文的学习,读者不仅能够掌握 HBase 的安装步骤,还能了解其核心配置项的意义和作用,为后续的数据存储与管理打下坚实的基础。


一、Hbase完全分布式部署(手动部署)

1. 下载Hbase

点击下载 hbase2.4.18安装包:https://mirrors.huaweicloud.com/apache/hbase/2.4.18/hbase-2.4.18-bin.tar.gz

2. 上传安装包

通过拖移的方式将下载的HBase安装包hbase-2.4.18-bin.tar.gz上传至虚拟机hadoop1的/export/software目录。

3. 解压HBase安装包

虚拟机hadoop1上传完成后将HBase安装包通过解压方式安装至/export/servers目录。

shell 复制代码
tar -zxvf /export/software/hbase-2.4.18-bin.tar.gz -C /export/servers

4. 配置HBase配置文件

4.1 修改hbase-env.sh配置文件

虚拟机hadoop1 修改hbase运行时环境变量配置文件/export/servers/hbase-2.4.18/conf/hbase-env.sh,执行如下命令添加配置。

shell 复制代码
echo 'export JAVA_HOME=/export/servers/jdk1.8.0_421' >> /export/servers/hbase-2.4.18/conf/hbase-env.sh
echo 'export HBASE_MANAGES_ZK=false' >> /export/servers/hbase-2.4.18/conf/hbase-env.sh
echo 'export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true' >> /export/servers/hbase-2.4.18/conf/hbase-env.sh

4.2 修改hbase-site.xml配置文件

虚拟机hadoop1 修改hbase配置文件/export/servers/hbase-2.4.18/conf/hbase-site.xml,执行如下命令修改配置。

shell 复制代码
cat >/export/servers/hbase-2.4.18/conf/hbase-site.xml <<EOF
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.tmp.dir</name>
    <value>/export/data/hbase2.4.18</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop1:9000/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value>
  </property>
  <property>
    <name>hbase.master.port</name>
    <value>16000</value>
  </property>
  <property>
    <name>hbase.master.info.port</name>
    <value>16010</value>
  </property>
  <property>
    <name>hbase.regionserver.port</name>
    <value>16020</value>
  </property>
  <property>
    <name>hbase.regionserver.info.port</name>
    <value>16030</value>
  </property>
</configuration>
EOF

4.3 修改regionservers配置文件

虚拟机hadoop1 修改/export/servers/hbase-2.4.18/conf/regionservers配置文件,配置RegionServer 节点,执行如下命令修改配置。

shell 复制代码
cat >/export/servers/hbase-2.4.18/conf/regionservers <<EOF
hadoop2
hadoop3
EOF

4.4 删除hbase中slf4j-reload4j-1.7.33.jar文件

虚拟机hadoop1执行如下命令删除hbase中slf4j-reload4j-1.7.33.jar文件,解决与hadoop中另一个日志jar包相同类的冲突。

shell 复制代码
rm -f /export/servers/hbase-2.4.18/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar

5. 虚拟机hadoop2安装并配置HBase

虚拟机hadoop1使用scp命令把虚拟机hadoop1的HBase的安装目录复制到虚拟机hadoop2的相同目录下,就相当于在hadoop2安装并配置了HBase。

shell 复制代码
scp -r /export/servers/hbase-2.4.18 root@hadoop2:/export/servers/

6. 虚拟机hadoop3安装并配置HBase

虚拟机hadoop1使用scp命令把虚拟机hadoop1的HBase的安装目录复制到虚拟机hadoop3的相同目录下,就相当于在hadoop3安装并配置了HBase。

shell 复制代码
scp -r /export/servers/hbase-2.4.18 root@hadoop3:/export/servers/

7. 配置HBase系统环境变量

7.1 配置虚拟机hadoop1的HBase环境变量

虚拟机hadoop1 使用echo命令向环境变量配置文件/etc/profile追加环境变量内容。

shell 复制代码
echo >> /etc/profile
echo 'export HBASE_HOME=/export/servers/hbase-2.4.18' >> /etc/profile
echo 'export PATH=$PATH:$HBASE_HOME/bin' >> /etc/profile

配置环境变量后,需要使用如下命令加载环境变量配置文件/etc/profile,使用Zookeeper的环境变量生效。

shell 复制代码
source /etc/profile

7.2 配置虚拟机hadoop2的HBase环境变量

虚拟机hadoop2 使用echo命令向环境变量配置文件/etc/profile追加环境变量内容。

shell 复制代码
echo >> /etc/profile
echo 'export HBASE_HOME=/export/servers/hbase-2.4.18' >> /etc/profile
echo 'export PATH=$PATH:$HBASE_HOME/bin' >> /etc/profile

配置环境变量后,需要使用如下命令加载环境变量配置文件/etc/profile,使用Zookeeper的环境变量生效。

shell 复制代码
source /etc/profile

7.3 配置虚拟机hadoop3的HBase环境变量

虚拟机hadoop3 使用echo命令向环境变量配置文件/etc/profile追加环境变量内容。

shell 复制代码
echo >> /etc/profile
echo 'export HBASE_HOME=/export/servers/hbase-2.4.18' >> /etc/profile
echo 'export PATH=$PATH:$HBASE_HOME/bin' >> /etc/profile

配置环境变量后,需要使用如下命令加载环境变量配置文件/etc/profile,使用Zookeeper的环境变量生效。

shell 复制代码
source /etc/profile

8. 启动HBase集群

由于 HBase 使用 HDFS 作为底层文件存储系统,使用 ZooKeeper 来实现多个 RegionServer 之间的一致性和协调,所以在启动 HBase 集群之前需要先启动 Hadoop 集群和 Zookeeper 集群。

启动hadoop集群和zookeeper集群后,在虚拟机hadoop1执行如下命令启动HBase集群。

shell 复制代码
start-hbase.sh

9. 进入HBase客户端

执行如下命令进入 HBase 的命令行客户端。

shell 复制代码
hbase shell

退出HBase命令行客户端。

shell 复制代码
exit

10. 访问 HBase 的 Web UI 页面

10.1 访问 Master 的 UI 页面

浏览器输入http://192.168.121.160:16010即可访问 Master 的 UI 页面。

10.2 访问 RegionServer 的 UI 页面

浏览器输入http://192.168.121.161:16030即可访问 RegionServer 的 UI 页面。

浏览器输入http://192.168.121.162:16030即可访问 RegionServer 的 UI 页面。

11. 停止HBase集群

若要停止HBase集群运行,在虚拟机hadoop1执行如下命令停止HBase集群。

shell 复制代码
stop-hbase.sh

单独停止 master 和 regionserver

若在虚拟机hadoop1执行stop-hbase.sh命令不能成功停止hbase集群,则在虚拟机hadoop1执行如下命令单独停止master

shell 复制代码
hbase-daemon.sh stop master

在虚拟机hadoop2和hadoop3执行如下命令单独停止regionserver

shell 复制代码
hbase-daemon.sh stop regionserver

二、使用shell脚本自动部署Hbase完全分布式(选看)

1. 下载Hbase

点击下载 hbase2.4.18安装包:https://mirrors.huaweicloud.com/apache/hbase/2.4.18/hbase-2.4.18-bin.tar.gz

2. 上传安装包

通过拖移的方式将下载的HBase安装包hbase-2.4.18-bin.tar.gz上传至虚拟机hadoop1的/export/software目录。

3. 使用shell脚本自动部署Hbase完全分布式

3.1 创建 hadoop1_hbase_install_config.sh 脚本文件并添加脚本内容

虚拟机hadoop1 上创建hadoop1_hbase_install_config.sh脚本文件

shell 复制代码
touch /export/shell/hadoop1_hbase_install_config.sh

添加如下内容:

shell 复制代码
#!/bin/bash

# 定义常量
HBASE_VER="2.4.18"
HBASE_TAR="hbase-${HBASE_VER}-bin.tar.gz"
DATA_DIR="/export/data"
SOFTWARE_DIR="/export/software"
SERVERS_DIR="/export/servers"

# 检查hbase是否已解压
if [ -d "${SERVERS_DIR}/hbase-${HBASE_VER}" ]; then
  echo "hadoop安装程序已存在,正在删除原安装程序目录..."
  rm -rf "${SERVERS_DIR}/hbase-${HBASE_VER}"
fi

# 检查hbase安装包是否存在
if [ -f ${SOFTWARE_DIR}/${HBASE_TAR} ]; then
  echo "hbase安装包存在,正在解压安装包..."
  # 解压HBase安装包
  tar -zxvf ${SOFTWARE_DIR}/${HBASE_TAR} -C ${SERVERS_DIR}
  echo "解压 ${SOFTWARE_DIR}/${HBASE_TAR} 到 ${SERVERS_DIR} 目录成功"
else
  echo "HBase安装包不存在,请先上传安装包到 ${SOFTWARE_DIR} 目录"
  exit 1
fi

# 修改hbase-env.sh配置文件
echo 'export JAVA_HOME=/export/servers/jdk1.8.0_421' >>${SERVERS_DIR}/hbase-${HBASE_VER}/conf/hbase-env.sh
echo 'export HBASE_MANAGES_ZK=false' >>${SERVERS_DIR}/hbase-${HBASE_VER}/conf/hbase-env.sh
echo 'export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=true' >>${SERVERS_DIR}/hbase-${HBASE_VER}/conf/hbase-env.sh

# 修改hbase-site.xml配置文件
cat >${SERVERS_DIR}/hbase-${HBASE_VER}/conf/hbase-site.xml <<EOF
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <property>
    <name>hbase.tmp.dir</name>
    <value>/export/data/hbase2.4.18</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop1:9000/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop1:2181,hadoop2:2181,hadoop3:2181</value>
  </property>
  <property>
    <name>hbase.master.port</name>
    <value>16000</value>
  </property>
  <property>
    <name>hbase.master.info.port</name>
    <value>16010</value>
  </property>
  <property>
    <name>hbase.regionserver.port</name>
    <value>16020</value>
  </property>
  <property>
    <name>hbase.regionserver.info.port</name>
    <value>16030</value>
  </property>
</configuration>
EOF
echo "${SERVERS_DIR}/hbase-${HBASE_VER}/conf/hbase-site.xml 配置文件修改成功"

# 修改regionservers配置文件
cat >${SERVERS_DIR}/hbase-${HBASE_VER}/conf/regionservers <<EOF
hadoop2
hadoop3
EOF
echo "${SERVERS_DIR}/hbase-${HBASE_VER}/conf/regionservers 配置文件修改成功"

# 删除hbase中slf4j-reload4j-1.7.33.jar文件
rm -f ${SERVERS_DIR}/hbase-${HBASE_VER}/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar
if [ $? -eq 0 ]; then
  echo "${SERVERS_DIR}/hbase-${HBASE_VER}/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar 文件删除成功"
else
  echo "${SERVERS_DIR}/hbase-${HBASE_VER}/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar 文件删除失败,请检查"
  exit 1
fi

# 删除hbase临时数据目录
rm -rf ${DATA_DIR}/hbase${HBASE_VER}

# 删除hbase在hdfs上的数据目录
hdfs dfs -rm -r /hbase

# 删除hbase在zookeeper上的数据目录
zkCli.sh <<EOF
deleteall /hbase
quit
EOF

# 设置hbase环境变量
echo >> /etc/profile
echo 'export HBASE_HOME=/export/servers/hbase-2.4.18' >> /etc/profile
echo 'export PATH=$PATH:$HBASE_HOME/bin' >> /etc/profile
echo "虚拟机Hadoop1的hbase环境变量设置成功"

# 分发环境变量配置文件到hadoop2
scp /etc/profile root@hadoop2:/etc/
if [ $? -eq 0 ]; then
  echo "分发 /etc/profile 到 hadoop2 的 /etc 目录成功"
else
  echo "分发 /etc/profile 到 hadoop2 的 /etc 目录失败,请检查"
  exit 1
fi

# 分发环境变量配置文件到hadoop3
scp /etc/profile root@hadoop3:/etc/
if [ $? -eq 0 ]; then
  echo "分发 /etc/profile 到 hadoop3 的 /etc 目录成功"
else
  echo "分发 /etc/profile 到 hadoop3 的 /etc 目录失败,请检查"
  exit 1
fi

# 分发安装程序到hadoop2
scp -r ${SERVERS_DIR}/hbase-${HBASE_VER} root@hadoop2:${SERVERS_DIR}/
if [ $? -eq 0 ]; then
  echo "分发 ${SERVERS_DIR}/hbase-${HBASE_VER} 到 hadoop2 的 ${SERVERS_DIR} 目录成功"
else
  echo "分发 ${SERVERS_DIR}/hbase-${HBASE_VER} 到 hadoop2 的 ${SERVERS_DIR} 目录失败,请检查"
  exit 1
fi

# 分发安装程序到hadoop3
scp -r ${SERVERS_DIR}/hbase-${HBASE_VER} root@hadoop3:${SERVERS_DIR}/
if [ $? -eq 0 ]; then
  echo "分发 ${SERVERS_DIR}/hbase-${HBASE_VER} 到 hadoop3 的 ${SERVERS_DIR} 目录成功"
else
  echo "分发 ${SERVERS_DIR}/hbase-${HBASE_VER} 到 hadoop3 的 ${SERVERS_DIR} 目录失败,请检查"
  exit 1
fi

echo -e "\n-----hbase 完全分布式安装配置完成-----\n"
echo -e "1. 依次在虚拟机Hadoop1、Hadoop2和Hadoop3执行命令 \e[31msource /etc/profile\e[0m 加载环境变量\n"
echo -e "2. 在虚拟机Hadoop1启动HBase集群:\e[31mstart-hbase.sh\e[0m\n"
echo -e "3. 若要停止hbase集群,在虚拟机Hadoop1执行:\e[31mstop-hbase.sh\e[0m\n"

exit 0

3.2 添加可执行权限

虚拟机hadoop1 上给脚本文件/export/shell/hadoop1_hbase_install_config.sh添加可执行权限。

shell 复制代码
chmod +x /export/shell/hadoop1_hbase_install_config.sh

3.3 执行脚本

虚拟机hadoop1上执行脚本文件自动化安装配置zookeeper完全分布式。

shell 复制代码
/export/shell/hadoop1_hbase_install_config.sh

执行完成如下图所示。

4. 加载环境变量

根据使用shell脚本自动安装完成后的提示依次在虚拟机hadoop1、hadoop2和hadoop3执行如下命令加载环境变量。

shell 复制代码
source /etc/profile

5. 启动HBase集群

由于 HBase 使用 HDFS 作为底层文件存储系统,使用 ZooKeeper 来实现多个 RegionServer 之间的一致性和协调,所以在启动 HBase 集群之前需要先启动 Hadoop 集群和 Zookeeper 集群。

启动hadoop集群和zookeeper集群后,在虚拟机hadoop1执行如下命令启动HBase集群。

shell 复制代码
start-hbase.sh

6. 进入HBase客户端

执行如下命令进入 HBase 的命令行客户端。

shell 复制代码
hbase shell

退出HBase命令行客户端。

shell 复制代码
exit

7. 访问 HBase 的 Web UI 页面

7.1 访问 Master 的 UI 页面

浏览器输入http://192.168.121.160:16010即可访问 Master 的 UI 页面。

7.2 访问 RegionServer 的 UI 页面

浏览器输入http://192.168.121.161:16030即可访问 RegionServer 的 UI 页面。

浏览器输入http://192.168.121.162:16030即可访问 RegionServer 的 UI 页面。

8. 停止HBase集群

若要停止HBase集群运行,在虚拟机hadoop1执行如下命令停止HBase集群。

shell 复制代码
stop-hbase.sh

单独停止 master 和 regionserver

若在虚拟机hadoop1执行stop-hbase.sh命令不能成功停止hbase集群,则在虚拟机hadoop1执行如下命令单独停止master

shell 复制代码
hbase-daemon.sh stop master

在虚拟机hadoop2和hadoop3执行如下命令单独停止regionserver

shell 复制代码
hbase-daemon.sh stop regionserver
相关推荐
国科安芯5 小时前
ASL706S:让 MCU 不再“失忆跑飞“的守护芯片
分布式·单片机·嵌入式硬件·安全·fpga开发·架构
阿无,7 小时前
RabbitMQ面试题
分布式·rabbitmq
盛世宏博智慧档案9 小时前
全国100个分布式机房环境温湿度智能监测系统建设方案
分布式·机房·温湿度
六bring个六10 小时前
分布式设备连接对端失败问题分析
分布式·分布式软总线
天涯明月199316 小时前
ray深度研究报告
大数据·人工智能·分布式·ray
Rain的Java大神之路1 天前
介绍一下分布式事务
java·分布式·后端·spring·spring cloud·架构·springcloud
大菠萝爱上小西瓜2 天前
【大数据实战】Spark 2.2.2 完全分布式集群搭建
大数据·分布式·spark
肠畔码农2 天前
深度解析 RocketMQ 消费端限流与重平衡(Rebalance):分布式队列分配与流控防雪崩本质
分布式·rocketmq
海兰2 天前
【 Kafka进阶3】Apache Kafka 分布式事件流平台:架构原理与微服务解耦机制简要分析
分布式·架构·kafka
麻瓜记录Jackson2 天前
深入剖析 ZooKeeper 分布式 互斥锁:Curator 之 InterProcessMutex 源码全解(附图解)
java·spring boot·分布式·后端·zookeeper·java-zookeeper