Files
KnowStreaming/docs/zh/Kafka安装/Zookeeper安装部署手册.md
2023-02-14 14:57:39 +08:00

118 lines
3.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Zookeeper安装部署手册
[TOC]
## 1、前言
假设我们要部署三台ZK机器IP分别为IP1、IP2、IP3。
如果部署五台的时候,过程也类似。
```bash
# 若要部署zk集群和kafka集群最好做IP映射
vim /etc/hosts
# 1. 注释掉含有127.0.0.1的行
# 2. 文件最下面写入以下内容(10.190.x.x表示每个服务器具体IPIP1、IP2、IP3表示机器hostname)
10.190.x.x IP1
10.190.x.x IP2
10.190.x.x IP3
# 测试
ping IP2
```
## 2、部署
**步骤一:环境初始化**
- 安装JDK-11这块比较通用不解释。
- POC或测试的时候建议在/home/kafka目录下进行安装以使得kafka相关的组件都在一块。
**步骤二:解压安装包**
```bash
cd /home/kafka
tar xvzf zookeeper-3.4.14.tar.gz
```
**步骤三:创建数据目录**
```bash
# 创建数据目录
mkdir /home/kafka/zookeeper-data
# 创建myid文件
touch /home/kafka/zookeeper-data/myid
# 数据目录这里写入ZK的ID如果是第一台机器则这里写1第二台写2
echo "1" > /home/kafka/zookeeper-data/myid
# 查看myid里面的数据下面一行那个1是输出的数据
cat /home/kafka/zookeeper-data/myid
1
```
**步骤四修改ZK配置**
```bash
# 进入配置文件
cd zookeeper-3.4.14/conf
cp zoo_sample.cfg zoo.cfg
# 修改zoo.cfg这个配置文件
# 修改dataDir的配置将其设置为zk的数据地址比如
dataDir=/home/kafka/zookeeper-data
# 增加ZK集群之间的交互配置。
# 这里的server.1后面的1必须要和myid中的输入数字对应上。
# 这里是安装三台ZK的情况如果是安装五台那么情况类似。
server.1=IP1:2888:3888
server.2=IP2:2888:3888
server.3=IP3:2888:3888
```
**步骤五启动ZK及检查**
```bash
# 进入bin目录
cd /home/kafka/zookeeper-3.4.14/bin
# 启动命令
./zkServer.sh start
# 停止命令
./zkServer.sh stop
# 查看状态命令
./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/kafka/zookeeper-3.4.14/bin/../conf/zoo.cfg
Mode: follower
# 部署三台的话只要三台里面有两台follower一台leader那么部署基本就成功了。
```
**步骤六:集群部署**
重复上面的步骤一到步骤五,在另外两台进行部署即可完成最终的部署。
部署时注意myid的内容。
## 3、历史安装问题记录
### 3.1、防火墙问题
在安装的过程中我们发现zk的状态一直是异常的查看日志发现当前的zk和其他机器连接失败后面关闭防火墙之后问题就解决了注意容器可能没有防火墙服务
### 3.2、启动顺序问题
第一台服务器上的zk启动后./zkServer.sh status查看状态是无法连接服务cat zookeeper.out 发现是无法连接其他主机。
原因:启动的时候是分开启动的,如果是三台服务器,第一台启动连接不上其他两台。
解决方法:启动其他一台或者两台后,在第一台上./zkServer.sh restart重新启动就好了