Hadoop3.x完全分布式环境搭建Zookeeper和Hbase

先在主节点上进行安装和配置,随后分发到各个从节点上。

1. 安装zookeeper

1.1 解压zookeeper并添加环境变量

1)解压zookeeper到/usr/local文件夹下

shell 复制代码
tar -zxvf /usr/local

2)进入/usr/local文件夹将apache-zookeeper-3.8.0-bin改名为zookeeper

shell 复制代码
cd /usr/local

mv apache-zookeeper-3.8.0-bin/ zookeeper

3)添加环境变量

shell 复制代码
vim /etc/profile
shell 复制代码
# zookeeper环境变量
export ZOOKEEPER_HOME=/usr/local/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

使配置立即生效

shell 复制代码
source /etc/profile

1.2 进行集群配置

1)创建文件夹

$ZOOKEEPER_HOME/下创建data/zkData

shell 复制代码
mkdir data

mkdir data/zkData

2)进入$ZOOKEEPER_HOME/conf文件夹下

shell 复制代码
cd $ZOOKEEPER_HOME/conf

复制模版文件

shell 复制代码
cat zoo_sample.cfg >> zoo.cfg

修改zoo.cfg

shell 复制代码
............
dataDir=/usr/local/zookeeper/data/zkData
............
# 集群配置
server.1=hadoop00:2888:3888
server.2=hadoop01:2888:3888
server.3=hadoop02:2888:3888

3)在$ZOOKEEPER_HOME/data/zkData/目录下创建myid文件

shell 复制代码
cd $ZOOKEEPER_HOME/data/zkData

touch myid

myid文件内容为编号,与zoo.cfg中集群配置的编号对应,如果是server.1(即hadoop00)的myid内容为1,以此类推。

shell 复制代码
echo 1 >> myid
scp /usr/local/zookeeper/ hadoop01:/usr/local/ # 不要忘记改myid
scp /usr/local/zookeeper/ hadoop02:/usr/local/
scp /etc/profile hadoop01:/etc/profile # 不要忘记执行 source /etc/profile 使文件立即生效
scp /etc/profile hadoop02:/etc/profile

4)启动zookeeper

分别在三台虚拟机上启动zookeeper

shell 复制代码
zkServer.sh start  # 运行
zkServer.sh stop   # 停止
zkServer.sh status # 查看状态,需要启动所有结点的zookeeper才显示enabled

2. 安装Hbase

2.1 解压Hbase并添加环境变量

1)解压hbase并重命名

shell 复制代码
tar -zxvf hbase-2.5.3-bin.tar.gz -C /usr/local/
cd /usr/local
mv hbase-2.5.3-bin.tar.gz hbase

2)添加环境变量

shell 复制代码
vim /etc/profile
shell 复制代码
............
# hbase环境变量
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin

使修改立即生效:

shell 复制代码
source /etc/profile

2.2 进行集群配置

1)修改hbase-env.sh文件

进入/usr/local/hbase/conf目录下

shell 复制代码
cd /usr/local/hbase/conf

修改hbase-env.sh(文件内容前插入)

shell 复制代码
............
# JDK路径
export JAVA_HOME=/usr/local/jdk

# 设置使用外置的zookeeper
export HBASE_MANAGES_ZK=false

2)修改hbase-site.xml

xml 复制代码
<configuration>
  <property>
    <name>hbase.master.maxclockskew</name>
    <value>180000</value>
  </property>
  <!-- 指定HDFS实例地址 -->
  <property>
    <name>hbase.rootdir</name>
    <value>hdfs://hadoop00:9000/hbase</value>
  </property>
  <!-- 启用分布式集群 -->
  <property>
    <name>hbase.cluster.distributed</name>
    <value>true</value>
  </property>
  <!-- ZooKeeper配置:设置ZooKeeper集群节点 -->
  <property>
    <name>hbase.zookeeper.quorum</name>
    <value>hadoop00,hadoop01,hadoop02</value>
  </property>
  <!-- ZooKeeper配置:设置ZooKeeper数据目录 -->
  <property>
    <name>hbase.zookeeper.property.dataDir</name>
    <value>/usr/local/zookeeper/data/zkData</value>
  </property>
  <property>
    <name>hbase.tmp.dir</name>
    <value>/usr/local/hbase/tmp</value>
  </property>
  <property>
    <name>hbase.unsafe.stream.capability.enforce</name>
    <value>false</value>
  </property>
</configuration>

3)复制hadoop的core-site.xmlhdfs-site.xml到hbase的conf目录下:

shell 复制代码
cp /usr/local/hadoop/etc/hadoop/core-site.xml /usr/local/hbase/conf/
cp /usr/local/hadoop/etc/hadoop/hdfs-site.xml /usr/local/hbase/conf/

4)在/usr/local/hbase/conf/文件夹下的regionservers文件添加集群的所有主机的主机名

shell 复制代码
vim regionservers
shell 复制代码
# 将文件内容中删除后添加
hadoop00
hadoop01
hadoop02

5)分发和运行

将hbse和环境变量分发到另外两台从节点:

shell 复制代码
scp -r /usr/local/hbase/ hadoop01:/usr/local/hbase
scp -r /usr/local/hbase/ hadoop02:/usr/local/hbase

scp -r /etc/profile hadoop01:/etc/profile
scp -r /etc/profile hadoop02:/etc/profile

运行hbase

注:hbase启动之前,一定要先启动zookeeper,且集群所有的节点都要启动!!!否则使用不了hbase即使守护进程都存在

检查zookeeper的状态

在主节点上执行:

shell 复制代码
zkServer.sh status

出现下图为正常:

shell 复制代码
start-hbase.sh # 运行
stop-hbase.sh  # 停止

进入hbase shell,查看其状态是否正常。

shell 复制代码
hbase shell
status	 # 进入shell后执行

如下图则正常:

相关推荐
marsh02069 小时前
41 openclaw分布式会话管理:跨服务状态同步方案
分布式·ai·编程·技术
坚持就完事了9 小时前
YARN资源管理器
大数据·linux·hadoop·学习
白晨并不是很能熬夜10 小时前
【RPC】第 4 篇:服务发现 — Zookeeper + 缓存容错
java·后端·程序人生·缓存·zookeeper·rpc·服务发现
渣渣盟10 小时前
大数据技术栈全景图:从零到一的入门路线(深度实战版)
大数据·hadoop·python·flink·spark
杰建云16711 小时前
Plurai 分布式推理引擎深度评测
分布式
星筏13 小时前
深入理解分布式锁:ZooKeeper vs Redis
redis·分布式·zookeeper
WL_Aurora14 小时前
Hadoop 通过 Web 界面上传文件到 HDFS 失败解决方案
hadoop·hdfs
无籽西瓜a14 小时前
【西瓜带你学Kafka | 第六期】Kafka 生产确认、消费 API 与分区分配策略(文含图解)
java·分布式·后端·kafka·消息队列·mq
紧固视界14 小时前
分布式光伏系统中紧固件选型与应用解析_2026上海紧固件专业展
分布式·上海紧固件展·紧固件展·上海紧固件专业展
无籽西瓜a14 小时前
【西瓜带你学Kafka | 第七期】Kafka 日志存储体系:保留清理、消息格式与分段刷新策略(文含图解)
java·分布式·后端·kafka·消息队列·mq