zookeeper 集群搭建

0. 环境准备

本实验基于以下 3 台测试机器进行:

IP hostname
10.4.79.90 hadoop-1
10.4.79.8 hadoop-2
10.4.79.6 hadoop-3

首先确认每个机器都安装了如下软件:

  • JAVA >= 1.8.x

为集群每个节点配置 hostname:vi /etc/hosts

10.4.79.90 hadoop-1
10.4.79.8  hadoop-2
10.4.79.6  hadoop-3

1. ZK 集群搭建

本文所使用的 zookeeper 版本为:3.5.8

1.1 解压缩

tar -zxvf apache-zookeeper-x.x.x-bin.tar.gz

1.2 创建 data 文件夹

data 文件夹用于存放 zookeeper 的数据。

cd apache-zookeeper

mkdir data

1.3 准备配置文件 zoo.cfg

zoo.cfg 从 zoo_sample.cfg 复制得到,zookeeper 默认以 zoo.cfg 作为配置文件启动.

cd apache-zookeeper/conf

cp zoo_sample.cfg zoo.cfg

修改配置文件 zoo.cfg,一共需要修改两处:

第一处:修改 dataDir 为我们创建的 zookeeper/data 路径:

dataDir=/data/apache-zookeeper/data

第二处:文件末尾添加其他 zookeeper 节点的信息:

server.1=hadoop-1:2888:3888
server.2=hadoop-2:2888:3888
server.3=hadoop-3:2888:3888

其中 server.1 中的后缀 1 实际上为相应 zookeeper 节点的 id,例如本例中我们指定 hadoop-1 节点作为 zookeeper 集群的 1 号节点。

如何让 hadoop-1 知道自己是 1 号节点呢?在 zookeeper/data 下创建一个文件 myid,里面写入 1 即可

相应地,在 hadoop-2 的 zookeeper/data 下创建文件 myid,修改内容为 2,在 hadoop-3 的 zookeeper/data 下创建文件 myid,修改内容为 3。

一般我们在一个节点配置好后,再 scp 到其他节点,那么在复制之后不要忘记修改 myid 为相应节点的编号。

1.4 启动 zookeeper

依次在每个节点启动 zookeeper:

./bin/zkServer.sh start

查看每个节点在集群中的角色:

./bin/zkServer.sh status

可以看到集群中有一个 leader 节点,其余为 follower 节点,集群搭建完成。

posted @ 2022-06-16 11:33  watermark's  阅读(306)  评论(0编辑  收藏  举报