0


Hadoop生态圈框架部署(六)- 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目录。

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

,执行如下命令添加配置。

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

,执行如下命令修改配置。

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 节点,执行如下命令修改配置。

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包相同类的冲突。

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。

scp -r /export/servers/hbase-2.4.18 root@hadoop2:/export/servers/

在这里插入图片描述

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

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

scp -r /export/servers/hbase-2.4.18 root@hadoop3:/export/servers/

在这里插入图片描述

7. 配置HBase系统环境变量

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

虚拟机hadoop1使用

echo

命令向环境变量配置文件

/etc/profile

追加环境变量内容。

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的环境变量生效。

source /etc/profile

在这里插入图片描述

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

虚拟机hadoop2使用

echo

命令向环境变量配置文件

/etc/profile

追加环境变量内容。

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的环境变量生效。

source /etc/profile

在这里插入图片描述

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

虚拟机hadoop3使用

echo

命令向环境变量配置文件

/etc/profile

追加环境变量内容。

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的环境变量生效。

source /etc/profile

在这里插入图片描述

8. 启动HBase集群

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

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

start-hbase.sh

在这里插入图片描述

9. 进入HBase客户端

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

hbase shell

在这里插入图片描述

退出HBase命令行客户端。

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集群。

stop-hbase.sh

单独停止 master 和 regionserver
若在虚拟机hadoop1执行

stop-hbase.sh

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

master

hbase-daemon.sh stop master

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

regionserver

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

脚本文件

touch /export/shell/hadoop1_hbase_install_config.sh

添加如下内容:

#!/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}"];thenecho"hadoop安装程序已存在,正在删除原安装程序目录..."rm -rf "${SERVERS_DIR}/hbase-${HBASE_VER}"fi# 检查hbase安装包是否存在if[ -f ${SOFTWARE_DIR}/${HBASE_TAR}];thenecho"hbase安装包存在,正在解压安装包..."# 解压HBase安装包tar -zxvf ${SOFTWARE_DIR}/${HBASE_TAR} -C ${SERVERS_DIR}echo"解压 ${SOFTWARE_DIR}/${HBASE_TAR} 到 ${SERVERS_DIR} 目录成功"elseecho"HBase安装包不存在,请先上传安装包到 ${SOFTWARE_DIR} 目录"exit1fi# 修改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>
EOFecho"${SERVERS_DIR}/hbase-${HBASE_VER}/conf/hbase-site.xml 配置文件修改成功"# 修改regionservers配置文件cat>${SERVERS_DIR}/hbase-${HBASE_VER}/conf/regionservers <<EOF
hadoop2
hadoop3
EOFecho"${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];thenecho"${SERVERS_DIR}/hbase-${HBASE_VER}/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar 文件删除成功"elseecho"${SERVERS_DIR}/hbase-${HBASE_VER}/lib/client-facing-thirdparty/slf4j-reload4j-1.7.33.jar 文件删除失败,请检查"exit1fi# 删除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环境变量设置成功"# 分发环境变量配置文件到hadoop2scp /etc/profile root@hadoop2:/etc/
if[$? -eq 0];thenecho"分发 /etc/profile 到 hadoop2 的 /etc 目录成功"elseecho"分发 /etc/profile 到 hadoop2 的 /etc 目录失败,请检查"exit1fi# 分发环境变量配置文件到hadoop3scp /etc/profile root@hadoop3:/etc/
if[$? -eq 0];thenecho"分发 /etc/profile 到 hadoop3 的 /etc 目录成功"elseecho"分发 /etc/profile 到 hadoop3 的 /etc 目录失败,请检查"exit1fi# 分发安装程序到hadoop2scp -r ${SERVERS_DIR}/hbase-${HBASE_VER} root@hadoop2:${SERVERS_DIR}/
if[$? -eq 0];thenecho"分发 ${SERVERS_DIR}/hbase-${HBASE_VER} 到 hadoop2 的 ${SERVERS_DIR} 目录成功"elseecho"分发 ${SERVERS_DIR}/hbase-${HBASE_VER} 到 hadoop2 的 ${SERVERS_DIR} 目录失败,请检查"exit1fi# 分发安装程序到hadoop3scp -r ${SERVERS_DIR}/hbase-${HBASE_VER} root@hadoop3:${SERVERS_DIR}/
if[$? -eq 0];thenecho"分发 ${SERVERS_DIR}/hbase-${HBASE_VER} 到 hadoop3 的 ${SERVERS_DIR} 目录成功"elseecho"分发 ${SERVERS_DIR}/hbase-${HBASE_VER} 到 hadoop3 的 ${SERVERS_DIR} 目录失败,请检查"exit1fiecho -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"exit0

在这里插入图片描述

3.2 添加可执行权限

虚拟机hadoop1上给脚本文件

/export/shell/hadoop1_hbase_install_config.sh

添加可执行权限。

chmod +x /export/shell/hadoop1_hbase_install_config.sh

在这里插入图片描述

3.3 执行脚本

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

/export/shell/hadoop1_hbase_install_config.sh

执行完成如下图所示。

在这里插入图片描述

4. 加载环境变量

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

source /etc/profile

在这里插入图片描述

5. 启动HBase集群

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

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

start-hbase.sh

在这里插入图片描述

6. 进入HBase客户端

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

hbase shell

在这里插入图片描述

退出HBase命令行客户端。

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集群。

stop-hbase.sh

单独停止 master 和 regionserver
若在虚拟机hadoop1执行

stop-hbase.sh

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

master

hbase-daemon.sh stop master

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

regionserver

hbase-daemon.sh stop regionserver
标签: 分布式 hadoop hbase

本文转载自: https://blog.csdn.net/zcs2312852665/article/details/143719044
版权归原作者 BigDataMagician 所有, 如有侵权,请联系我们删除。

“Hadoop生态圈框架部署(六)- HBase完全分布式部署”的评论:

还没有评论