努力挣扎的生活 努力挣扎的生活
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • 安全记录
  • 分布式存储
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Docker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • ELK(EFK)
  • 虚拟化
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)

yangfk

瑟瑟发抖的小运维
  • 前端文章

    • JavaScript
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 运维基础
  • 监控
  • 日志系统
  • 安全记录
  • 分布式存储
  • gitlab安装
  • jenkins安装和管理
  • Jenkins工具集成
  • pipeline流水线
  • Docker
  • Kubernetes
  • Nexus
  • Rancher
  • Prometheus
  • ELK(EFK)
  • 虚拟化
  • Mysql
  • PostgreSQL
  • Redis
  • MongoDB
  • clickhouse
关于
  • 分类
  • 标签
  • 归档
  • 收藏
  • 更多
GitHub (opens new window)
  • Docker

  • Kubernetes

  • Nexus

  • Rancher

  • Prometheus

  • ELK

    • microservices-platform项目部署
    • zookeeper集群部署
      • zookeeper集群部署(docker-compose)
      • zookeeper集群部署
        • 安装jdk环境
        • zookeeper安装
        • 配置zookeeper集群
        • 启动,检查
        • zookeeper添加到systemd
    • kafka和kakfa-manager部署
    • filebeat部署
    • es-logstash-kibana部署日志展示
  • 虚拟化

  • Istio

//
  • 云计算虚拟化
  • ELK
yangfk
2022-06-18

zookeeper集群部署

//

# zookeeper集群部署(docker-compose)

服务器IP:
10.150.100.21
10.150.100.22
10.150.100.23
  • 基础配置
#创建目录,授权

mkdir -p /data/ck-cluster && cd /data/ck-cluster
mkdir -p zookeeper/{zookeeper_conf,zookeeper_data,zookeeper_logs} && chown -R 1001:0 zookeeper/

#创建配置文件,这里的data 是容器内部目录,与docker-compose对应挂载

cat >zookeeper/zookeeper_conf/zoo.cfg<<'EOF'
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
clientPort=2181
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60

server.1=10.150.100.21:2888:3888
server.2=10.150.100.22:2888:3888
server.3=10.150.100.23:2888:3888
EOF


#三台服务器都写入 myid
root@ck-cluster01:/opt/ck-cluster# cd /data/ck-cluster && echo 1 > zookeeper/zookeeper_data/myid && chown -R 1001:0 zookeeper/
root@ck-cluster02:/opt/ck-cluster# cd /data/ck-cluster && echo 2 > zookeeper/zookeeper_data/myid && chown -R 1001:0 zookeeper/
root@ck-cluster03:/opt/ck-cluster# cd /data/ck-cluster && echo 3 > zookeeper/zookeeper_data/myid && chown -R 1001:0 zookeeper/
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  • 配置docker-compose
cd /data/ck-cluster
cat >docker-compose.yaml<<'EOF'
version: '3'

services:
  gtrc_zookeeper:
    restart: always
    image: bitnami/zookeeper:3.4.14
    container_name: gtrc_zookeeper
    privileged: true
    environment:
      - TZ=Asia/Shanghai
      - ZK_HEAP_SIZE="1G"
      - ZK_JVM_FLAGS="-server -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:InitiatingHeapOccupancyPercent=35 -XX:+ExplicitGCInvokesConcurrent -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true"
    volumes:
      - /etc/localtime:/etc/localtime
      - ./zookeeper/zookeeper_data:/data/zookeeper/data
      - ./zookeeper/zookeeper_logs:/data/zookeeper/logs
      - ./zookeeper/zookeeper_conf/zoo.cfg:/opt/bitnami/zookeeper/conf/zoo.cfg
#    ports:
#      - "0.0.0.0:2181:2181"
#      - "0.0.0.0:2888:2888"
#      - "0.0.0.0:3888:3888"
    entrypoint: ["/opt/bitnami/zookeeper/bin/zkServer.sh","start-foreground"]
    network_mode: host
EOF

#启动容器
docker-compose -f docker-compose.yaml up -d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

# zookeeper集群部署

# 安装jdk环境

jdk环境配置🤞🤞

# zookeeper安装

zookeeper-Apache下载地址 (opens new window)

# 配置zookeeper集群

wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.14/zookeeper-3.4.14.tar.gz 
tar xf zookeeper-3.4.14.tar.gz -C /opt 
ln -s /opt/zookeeper-3.4.14/ /opt/zookeeper
cd /opt/zookeeper/
1
2
3
4
  • 配置zoo.cfg
mkdir -p /data/zookeeper/{data,logs}
vi /opt/zookeeper/conf/zoo.cfg
1
2

单机模式示例

dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
clientPort=2181
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
1
2
3
4
5
6
7
8
9

集群模式

添加hosts,或者DNS解析

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/logs
clientPort=2181
server.1=hdss14-12.host.com:2888:3888
server.2=hdss14-21.host.com:2888:3888
server.3=hdss14-22.host.com:2888:3888
1
2
3
4
5
6
7
8
9
  • 添加myid

注意这个myid要与zoo.cfg里面的 server.ID 对应

[root@hdss14-12 src]# echo '1' > /data/zookeeper/data/myid 
[root@hdss14-21 src]# echo '2' > /data/zookeeper/data/myid 
[root@hdss14-22 src]# echo '3' > /data/zookeeper/data/myid
1
2
3

# 启动,检查

#启动
/opt/zookeeper/bin/zkServer.sh start 

#三台都执行,再检查
/opt/zookeeper/bin/zkServer.sh status
1
2
3
4
5
  • zookeeper启动异常,检查
bash -x /opt/zookeeper/bin/zkServer.sh start
找到java 执行的那条命令,在命令行执行,查看报错日志
 
1
2
3

zookeeper.jpg

[root@hdss14-12 zookeeper]# ./bin/zkServer.sh status 
ZooKeeper JMX enabled by default 
Using config: /opt/zookeeper/bin/../conf/zoo.cfg 
Mode: follower 
[root@hdss14-21 zookeeper]# ./bin/zkServer.sh status 
ZooKeeper JMX enabled by default 
Using config: /opt/zookeeper/bin/../conf/zoo.cfg 
Mode: leader 
[root@hdss14-22 zookeeper]# ./bin/zkServer.sh status 
ZooKeeper JMX enabled by default 
Using config: /opt/zookeeper/bin/../conf/zoo.cfg 
Mode: follower

# zookeeper添加到systemd

  • 创建用户,修改权限
groupadd zookeeper
useradd  -M -s /sbin/nologin -g zookeeper zookeeper
chown -R zookeeper.zookeeper /data/zookeeper/
1
2
3
  • 添加zookeeper systemd

vi /usr/lib/systemd/system/zookeeper.service

[Unit]
Description=ZooKeeper Service
After=network.target
After=syslog.target

[Service]
Environment=ZOO_LOG_DIR=/data/zookeeper/logs
Environment=JAVA_HOME=/usr/local/jdk1.8
PIDFile=/data/zookeeper/data/zookeeper_server.pid
SyslogIdentifier=zookeeper

Type=forking
User=zookeeper
Group=zookeeper
ExecStart=/opt/zookeeper/bin/zkServer.sh start /opt/zookeeper/conf/zoo.cfg
ExecStop=/opt/zookeeper/bin/zkServer.sh stop /opt/zookeeper/conf/zoo.cfg
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=default.target
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//
如果此文章对您有帮助,点击 -->> 请博主喝咖啡 (opens new window)
上次更新: 2025/05/09, 11:56:38
microservices-platform项目部署
kafka和kakfa-manager部署

← microservices-platform项目部署 kafka和kakfa-manager部署→

最近更新
01
postgreSQL通过keepalived配置主从自动切换
06-30
02
ubuntu2204编译安装php7.4.33
06-30
03
nginx之resolver解析
06-19
更多文章>
Theme by Vdoing | Copyright © 2019-2025 yangfk | 湘ICP备2021014415号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×
//