www.colben.cn/content/post/zk-install.md
2021-11-14 15:52:46 +08:00

105 lines
2.6 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.

---
title: "CentOS7 安装 zookeeper 集群"
date: 2019-10-30T01:25:48+08:00
lastmod: 2019-10-30T01:25:48+08:00
keywords: []
tags: ["zookeeper", "centos7"]
categories: ["storage"]
---
## 环境
主机名 | eth0 IP | eth1 IP | 操作系统 | ZK 版本 | myid
---- | ---- | ---- | ---- | ---- | ----
zk221 | 192.168.1.221 | 192.168.16.221 | CentOS7.5 | 3.4.14 | 221
zk222 | 192.168.1.222 | 192.168.16.222 | CentOS7.5 | 3.4.14 | 222
zk223 | 192.168.1.223 | 192.168.16.223 | CentOS7.5 | 3.4.14 | 223
- 下载 [zookeeper-3.4.14](https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz)
- eth0 网卡用于向客户端提供服务eth1 网卡用于 zookeeper 集群内部通信
## 各节点初始配置
- 关闭 selinux、防火墙
- 部署 java 运行环境
- 创建数据(快照日志)目录
```bash
mkdir -p /var/lib/zookeeper/data
```
- 创建事物日志目录
```bash
mkdir -p /var/lib/zookeeper/dataLog
```
- 创建服务日志目录
```
mkdir -p /var/log/zookeeper
```
- 生成 myid 文件
```
# zk221
echo 221 > /var/lib/zookeeper/data/myid
# zk222
echo 222 > /var/lib/zookeeper/data/myid
# zk223
echo 223 > /var/lib/zookeeper/data/myid
```
## 部署 zookeeper
- 登陆 zk221下载 zookeeper解压至 /opt/ 下
- 生成配置文件
```
cd /opt/zookeeper/conf/
cp zoo_sample.cfg zoo.cfg
```
- 修改 /opt/zookeeper/conf/zoo.cfg
```
dataDir=/var/lib/zookeeper/data
dataLogDir=/var/lib/zookeeper/dataLog
# servers
server.221=192.168.16.221:2888:3888
server.222=192.168.16.222:2888:3888
server.223=192.168.16.223:2888:3888
```
- 修改 /opt/zookeeper/bin/zkEnv.sh
```
# 找到 ZOO_LOG_DIR="." 一行,换成如下
ZOO_LOG_DIR="/var/log/zookeeper"
```
- 打包 zookeeper 目录,复制到 zk222 和 zk223 上
## 启动集群
- 直接启动脚本
- 在每个节点上启动 zookeeper 服务
```bash
/opt/zookeeper/bin/zkServer.sh start
```
- systemd 启动
- 创建 /usr/lib/systemd/system/zookeeper.service内容如下
```
[Unit]
Description=Zookeeper
Requires=network.service
After=network.service
[Service]
Environment=JAVA_HOME=/opt/jre
ExecStart=/opt/zookeeper/bin/zkServer.sh start-foreground
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
```
- 启动 zookeeper 服务
```bash
systemctl daemon-reload
systemctl start zookeeper
```
## 查看集群状态
- 查看节点状态
```bash
/opt/zookeeper/bin/zkServer.sh status
```