ZooKeeper 集群部署
本文基于 JDK 1.8 与 zookeeper-3.4.8,在三个节点
192.168.1.220/221/222上部署 ZooKeeper 集群,并完成 Leader/Follower 选举验证与容灾测试。
一、需要安装的软件包
基础软件安装包已提供:
- jdk-1.8.0
- zookeeper-3.4.8
二、主机环境
| IP 地址 | 主机名 | myid |
|---|---|---|
| 192.168.1.220 | server-node1 | 1 |
| 192.168.1.221 | server-node2 | 2 |
| 192.168.1.222 | server-node3 | 3 |
三、系统环境设置
以下设置在三台主机上均需执行。
1. 关闭 firewalld
systemctl stop firewalld
systemctl disable firewalld
2. 关闭 selinux
临时关闭:
setenforce 0
永久关闭:修改 /etc/sysconfig/selinux,将 SELINUX 设置为 disabled。
SELINUX=disabled
四、在三台主机上安装 JDK 环境
以 server-node1 为例:
- 将
jdk-1.8.0-x64安装包上传至主机; - 进入安装目录并执行安装脚本:
cd jdk-1.8.0-x64
sh jdk_install.sh
- 让 Java 环境变量生效:
source /etc/profile
- 测试安装结果(更多帮助可查看 README 文件):
java -version
echo $JAVA_HOME
将同样的安装包分别上传到 server-node2、server-node3,按照上面相同的步骤完成安装。
五、在三台主机上安装 ZooKeeper
以 server-node1 为例:
- 将
zookeeper-3.4.8-x64安装包上传至主机; - 进入安装目录并执行安装脚本:
cd zookeeper-3.4.8-x64
sh zookeeper_install.sh
- 让 ZooKeeper 系统环境变量生效:
source /etc/profile.d/zookeeper.sh
- 测试安装(更多帮助可查看 README 文件):
zkCli.sh
将同样的安装包分别上传到 server-node2、server-node3,按照上面相同的步骤完成安装。
六、配置 ZooKeeper 集群
1. 修改 zoo.cfg
在三台节点分别编辑配置文件 /opt/truplatform/zookeeper/conf/zoo.cfg,在文件末尾添加相同的三行内容:
server.1=192.168.1.220:2700:2800
server.2=192.168.1.221:2700:2800
server.3=192.168.1.222:2700:2800
PDF 提取文本中出现的
Q实为冒号:,正确写法为server.A=B:C:D。
2. 配置项说明
server.A=B:C:D 各字段含义如下:
| 字段 | 含义 |
|---|---|
| A | 一个数字,表示这是第几号服务器,对应 myid 文件中的值 |
| B | 该服务器的 IP 地址 |
| C | 第一个端口,用于集群成员之间的信息交换,即该服务器与集群中 Leader 服务器交换信息所用的端口 |
| D | 第二个端口,在 Leader 挂掉时专门用于进行 Leader 选举的端口 |
3. 创建 myid 标识文件
在 ZooKeeper 集群模式下,还需要在 data 目录下创建 myid 标识文件。该文件中只有一个数字,即 server.A=B:C:D 中 A 的值,必须与 zoo.cfg 中的配置一致,因此每个节点的值各不相同,需要手动创建。
在 server-node1 上执行:
echo "1" > /opt/truplatform/zookeeper/data/myid
在 server-node2 上执行:
echo "2" > /opt/truplatform/zookeeper/data/myid
在 server-node3 上执行:
echo "3" > /opt/truplatform/zookeeper/data/myid
4. 重启所有节点
在每台机器上依次执行:
service zookeeper stop
service zookeeper start
5. 查看集群状态
分别在三个节点执行:
zkServer.sh status
可以观察到:server-node3 为 Leader 角色,另外两个节点为 Follower 角色,形成一主两从的角色分工,说明集群安装成功。
七、容灾测试
将 server-node3 节点上的 ZooKeeper 停止,观察集群是否会自动选举出新的 Leader。
在 server-node3 执行:
service zookeeper stop
随后在另外两个节点分别查看状态:
server-node1:Follower 角色;server-node2:被选举为新的 Leader 角色。
在 ZooKeeper 集群中,单个 Follower 节点宕机不会影响集群使用;当 Leader 节点宕机时,集群会自动选举出新的 Leader。
至此 ZooKeeper 集群安装完毕。
文档信息
| 项目 | 内容 |
|---|---|
| 编写 | 苏俊全 |
| 版本 | V1 |
| 日期 | 2019-03-13 |
| 邮箱 | junquan.su@jwis.cn |
| 公司 | 深圳杰为软件(系统)深圳有限公司 |
此处评论已关闭