HBase 分布式集群部署实战:从解压到启动的完整指南

HBase 分布式集群部署实战:从解压到启动的完整指南

文章目录

在开始部署之前,先通过下面的流程图了解 HBase 分布式集群搭建的整体步骤:
解压安装文件
配置环境变量
修改配置文件
集群分发
启动集群
验证部署

步骤一:解压安装文件

使用 Xftp 将 HBase 压缩包上传到 /opt/software 目录下

bash 复制代码
[root@master ~]# cd /opt/software/
[root@master software]# tar -zxvf hbase-1.2.6-bin.tar.gz -C /opt/module/ # 解压到统一安装目录
[root@master software]# cd ~
[root@master ~]#mv /opt/module /hbase-1.2.6 /opt/module/hbase

步骤二:配置环境变量

(1)编辑/etc/profile文件。

bash 复制代码
[root@master ~]# vi /etc/profile

将以下配置信息添加到 /etc/profile 文件的末尾,将 HBase 的 bin 目录添加到系统环境变量 PATH 中:

bash 复制代码
export HBASE_HOME=/opt/module/hbase  
export PATH=$PATH:$HBASE_HOME/bin

(2)将 master 中的配置文件用 scp 分别分发到 slave1 和 slave2 上,再执行 source /etc/profile 命令使其生效。

bash 复制代码
[root@master ~]# scp -r /etc/profile root@slave1:/etc/
[root@master ~]# scp -r /etc/profile root@slave2:/etc/

(3)执行source /etc/profile命令,使配置的环境变量在系统全局范围生效。

bash 复制代码
[root@master ~]# source /etc/profile
[root@slave1~]# source /etc/profile
[root@slave2 ~]# source /etc/profile

步骤三:修改配置文件(master节点)

conf下文件修改

(1)hbase-env.sh

HBase的配置文件放置在安装目录下的conf文件夹内,切换到该目录首先修改HBase环境配置文件 hbase-env.sh,设置 JAVA_HOME 为自己安装的版本。将以下配置信息添加到hbase-env.sh的末尾。

bash 复制代码
[root@master ~]# cd /opt/module/hbase/conf  
[root@master conf]# vi hbase-env.sh
export JAVA_HOME=/opt/module/java
export HADOOP_HOME=/opt/module/hadoop
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

export HBASE_MANAGES_ZK=false
export HBASE_LOG_DIR=${HBASE_HOME}/logs
export HBASE_PID_DIR=${HBASE_HOME}/pid

JAVA_HOME为java程序所在位置,HBASE_MANAGES_ZK表示是否使用HBase自带的zookeeper环境,如果使用自己安装的zookeeper,此处可以设置为false(默认为true),即不使用hbase自带的zookeeper。HADOOP_CONF_DIR 是Hadoop配置文件的地址。HBASE_LOG_DIR与HBASE_PID_DIR分别为日志与pid文件输出目录。

注释这两行

bash 复制代码
#export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"
#export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"

(2)hbase-site.xml

修改配置文件 hbase-site.xml,添加相关信息。将以下配置信息添加到hbase-site.xml文件与之间。

bash 复制代码
<property>
<name>hbase.rootdir</name>
    <value>hdfs://master:8020/hbase</value>
</property>
<property>
     <name>hbase.master.info.port</name>
     <value>16010</value>
</property>
<property>
     <name>hbase.cluster.distributed</name>
     <value>true</value>
</property>
<property>
     <name>hbase.tmp.dir</name>
     <value>/opt/module/hbase/tmp</value>
</property>
<property>
     <name>hbase.zookeeper.property.clientPort</name>
     <value>2181</value>
</property>
<property>
   	<name>hbase.zookeeper.property.dataDir</name>
    <value>/opt/module/hbase/tmp/zookeeper-hbase</value>
</property>
<property>
    <name>hbase.zookeeper.quorum</name>
    <value>master,slave1,slave2</value>
</property>
<property>
    <name>zookeeper.session.timeout</name>
    <value>120000</value> 
</property>
<property>
    	<name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
</property>

各配置项的含义整理如下表:

属性名 说明
hbase.rootdir hdfs://master:8020/hbase 指定 HBase 在 HDFS 上的存储目录
hbase.master.info.port 16010 HBase Master 的 Web UI 访问端口
hbase.cluster.distributed true 开启 HBase 分布式模式
hbase.tmp.dir /opt/module/hbase/tmp HBase 本地临时文件路径,类似 Hadoop 的 hadoop.tmp.dir
hbase.zookeeper.property.clientPort 2181 ZooKeeper 的连接端口
hbase.zookeeper.property.dataDir /opt/module/hbase/tmp/zookeeper-hbase HBase 在 ZooKeeper 上存储数据的目录
hbase.zookeeper.quorum master,slave1,slave2 ZooKeeper 集群节点列表
zookeeper.session.timeout 120000 RegionServer 与 ZooKeeper 间的连接超时时间(毫秒)
hbase.unsafe.stream.capability.enforce false 是否强制检查流能力(设为 false 可避免某些兼容性问题)

(3)regionservers

修改 regionservers文件,删除localhost,添加以下内容。

bash 复制代码
[root@master conf]# vi regionservers
slave1
slave2

(4)复制配置文件

为了让Hbase读取到hadoop的配置,将core-site.xml和hdfs-site.xml两个文件拷贝到 $HBASE_HOME/conf/ 目录下。

bash 复制代码
[root@master conf]# cp /opt/module/hadoop/etc/hadoop/core-site.xml /opt/module/hbase/conf/
[root@master conf]# cp /opt/module/hadoop/etc/hadoop/hdfs-site.xml /opt/module/hbase/conf/

步骤四:集群分发

将master节点配置好的HBase安装包分发给slave1,slave2节点。

bash 复制代码
[root@master conf]# cd
# 从master远程拷贝hbase文件到slave1节点
[root@master ~]# scp -r /opt/module/hbase root@slave1: /opt/module 
# 从master远程拷贝hbase文件到slave2节点
[root@master ~]# scp -r /opt/module/hbase root@slave2: /opt/module  

步骤五:HBase 集群启动

先在 master 上使用 start-all.sh 启动 Hadoop 集群,再在各个节点上启动 ZooKeeper,最后在 master 上使用 start-hbase.sh 命令启动 HBase。

bash 复制代码
[root@master ~]$ start-all.sh
[root@master ~]# zkServer.sh start
[root@slave1 ~]# zkServer.sh start
[root@slave2 ~]# zkServer.sh start

[root@master ~]$ start-hbase.sh

用webUI查看集群,特别强调hbase2.0的端口是16010。

图 HBase浏览器界面 5、查看集群

(1)jps查看

master上有HMaster,slave1和slave2上有HRegionserver。QuorumPeerMain是zookeeper的守护进程

shell 复制代码
[root@master conf]# jps
13296 HMaster
2435 NameNode
13667 Jps
3028 NodeManager
3316 QuorumPeerMain
12292 JobHistoryServer
1943 ResourceManager
2601 DataNode
12809 HRegionServer

[root@slave1 ~]# jps
1863 DataNode
11383 Jps
11080 HRegionServer
1930 NodeManager
10942 QuorumPeerMain

(2)web端查看

192.168.11.50:16010

视频版本部署教程

大数据必学!HBase分布式数据库手把手搭建教程(避坑指南)

相关推荐
@insist1231 小时前
系统集成项目管理工程师-信息和文档管理
网络·数据库·软考·系统集成项目管理工程师·软考中项·软件水平考试
残 风2 小时前
PostgreSQL 存储机制详解
数据库·postgresql·开源·数据库开发
JacksonMx3 小时前
Java CompletableFuture 异步编程实战:从入门到架构师避坑指南
linux·数据库·python
tachibana23 小时前
性能指标的口径选择
数据库·人工智能·架构·大模型·llm
肠畔码农3 小时前
深度解密 Redis 分布式锁:从单机原子语义到集群架构博弈
redis·分布式·架构
机器人梦想家4 小时前
具身机器人视觉服务的异步回调与并发控制
数据库·算法·机器人
小妖同学学AI4 小时前
开源向量数据库的王者:Milvus 深度解析,专为 AI 应用打造的云原生搜索引擎!
数据库·开源·milvus
l1258655 小时前
# RAG上线评估指标体系:六大核心指标与压测实战全解析
数据库·人工智能·python·mysql·langchain·milvus
一只鹿鹿鹿5 小时前
数据资产管理解决方案(Word文件)
大数据·数据库·安全·web安全·系统安全
2401_894915535 小时前
Geo 优化源码部署实战:环境配置、参数调优完整指南
运维·服务器·数据库·tcp/ip·安全