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. 配置HBase系统环境变量](#5. 配置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 创建 hbase_install_config.sh 脚本文件并添加脚本内容](#3.1 创建 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的伪分布式部署过程,包括从下载和安装到配置和启动的每一个步骤。通过手动部署,读者将能够深入理解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上传至/export/software目录。

或者可以使用wget命令直接下载的Hbase安装包hbase-2.4.18-bin.tar.gz到/export/software目录。

shell 复制代码
wget https://mirrors.huaweicloud.com/apache/hbase/2.4.18/hbase-2.4.18-bin.tar.gz -P /export/software/

3. 解压HBase安装包

上传完成后将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配置文件

修改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配置文件

修改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://hadoop:9000/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop: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配置文件

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

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

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

执行如下命令删除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. 配置HBase系统环境变量

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

shell 复制代码
source /etc/profile

8. 启动HBase伪集群

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

启动 hadoop 伪分布式。

shell 复制代码
start-all.sh

启动单机 zookeeper 并查看状态是否正常。

shell 复制代码
zkServer.sh start
zkServer.sh status

执行如下命令启动HBase伪分布式。

shell 复制代码
start-hbase.sh

9. 进入HBase客户端

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

shell 复制代码
hbase shell

测试能否正常使用HBase命令。

shell 复制代码
create 't1','f1'

退出HBase命令行客户端。

shell 复制代码
exit

10. 访问 HBase 的 Web UI 页面

10.1 访问 Master 的 UI 页面

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

10.2 访问 RegionServer 的 UI 页面

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

11. 停止HBase伪集群

如果要停止HBase伪集群运行,执行如下命令停止HBase伪集群。

shell 复制代码
stop-hbase.sh

单独停止 master 和 regionserver

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

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

执行如下命令单独停止regionserver

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

注意

如果安装过程出现问题,需要重新安装,执行如下命令删除对应数据目录。若HBase已经启动需要先停止HBase伪分布式运行。

shell 复制代码
hbase-daemon.sh stop master
hbase-daemon.sh stop regionserver
rm -rf /export/data/hbase2.4.18
hdfs dfs -rm -r /hbase
zkCli.sh
deleteall /hbase
quit

二、使用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上传至/export/software目录。

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

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

执行如下命令创建hbase_install_config.sh脚本文件

shell 复制代码
touch /export/shell/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://hadoop:9000/hbase</value>
  </property>
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop: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
hadoop
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环境变量设置成功"

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

exit 0

3.2 添加可执行权限

给脚本文件/export/shell/hbase_install_config.sh添加可执行权限。

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

3.3 执行脚本

执行脚本文件自动化安装配置HBase伪分布式。

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

执行完成如下图所示。

4. 加载环境变量

根据使用shell脚本自动安装完成后的提示,执行如下命令加载环境变量。

shell 复制代码
source /etc/profile

5. 启动HBase伪集群

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

启动 hadoop 伪分布式。

shell 复制代码
start-all.sh

启动单机 zookeeper 并查看状态是否正常。

shell 复制代码
zkServer.sh start
zkServer.sh status

执行如下命令启动HBase伪分布式。

shell 复制代码
start-hbase.sh

6. 进入HBase客户端

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

shell 复制代码
hbase shell

测试能否正常使用HBase命令。

shell 复制代码
create 't1','f1'

退出HBase命令行客户端。

shell 复制代码
exit

7. 访问 HBase 的 Web UI 页面

7.1 访问 Master 的 UI 页面

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

7.2 访问 RegionServer 的 UI 页面

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

8. 停止HBase伪集群

如果要停止HBase伪集群运行,执行如下命令停止HBase伪集群。

shell 复制代码
stop-hbase.sh

单独停止 master 和 regionserver

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

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

执行如下命令单独停止regionserver

shell 复制代码
hbase-daemon.sh stop regionserver
相关推荐
bug_null2 小时前
RabbitMQ消息可靠性保证机制7--可靠性分析-rabbitmq_tracing插件
分布式·rabbitmq
kingbal2 小时前
RabbitMQ:添加virtualHost
分布式·rabbitmq
小马爱打代码3 小时前
SpringCloud(注册中心+OpenFeign+网关+配置中心+服务保护+分布式事务)
分布式·spring·spring cloud
BUTCHER54 小时前
Kafka安装篇
分布式·kafka
lucky_syq5 小时前
Hive与HBase的区别有哪些
hive·hadoop·hbase
04Koi.7 小时前
Java项目--仿RabbitMQ的消息队列--虚拟主机设计
分布式·rabbitmq
若雨叶9 小时前
Kafka实现监听多个topic
分布式·kafka
HaoHao_0109 小时前
云消息队列 Kafka 版
分布式·阿里云·kafka·云计算·云服务器
中东大鹅10 小时前
分布式数据存储基础与HDFS操作实践
大数据·linux·hadoop·分布式·hbase
zybishe10 小时前
免费送源码:Java+ssm++MVC+HTML+CSS+MySQL springboot 社区医院信息管理系统的设计与实现 计算机毕业设计原创定制
java·hadoop·sql·zookeeper·html·json·mvc