Linux 部署:zookeeper (容器集群)

参考文档:https://www.cnblogs.com/EminemJK/p/15138536.html

1. 节点规划

节点 ip
vm81 10.99.0.81
vm82 10.99.0.82
vm83 10.99.0.83

2. 部署zookeeper容器

  • vm81
# $ cat run-zk.sh 
docker run -d -p 2181:2181 -p 2888:2888 -p 3888:3888 --name zookeeper_node --restart always \
-v /usr/soft/zookeeper/data:/data \
-v /usr/soft/zookeeper/datalog:/datalog \
-v /usr/soft/zookeeper/logs:/logs \
-v /usr/soft/zookeeper/conf:/conf \
--network host  \
-e ZOO_MY_ID=1  zookeeper

# $ sudo sh run-zk.sh
  • vm82
# $ cat run-zk.sh 
docker run -d -p 2181:2181 -p 2888:2888 -p 3888:3888 --name zookeeper_node --restart always \
-v /usr/soft/zookeeper/data:/data \
-v /usr/soft/zookeeper/datalog:/datalog \
-v /usr/soft/zookeeper/logs:/logs \
-v /usr/soft/zookeeper/conf:/conf \
--network host  \
-e ZOO_MY_ID=2  zookeeper

# $ sudo sh run-zk.sh
  • vm83
# $ cat run-zk.sh 
docker run -d -p 2181:2181 -p 2888:2888 -p 3888:3888 --name zookeeper_node --restart always \
-v /usr/soft/zookeeper/data:/data \
-v /usr/soft/zookeeper/datalog:/datalog \
-v /usr/soft/zookeeper/logs:/logs \
-v /usr/soft/zookeeper/conf:/conf \
--network host  \
-e ZOO_MY_ID=3  zookeeper

# $ sudo sh run-zk.sh

3. 配置zoo.cfg文件

  • vm81上创建该文件

sudo vi /usr/soft/zookeeper/conf/zoo.cfg

dataDir=/data
dataLogDir=/datalog
tickTime=2000
initLimit=5
syncLimit=2
clientPort=2181
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60

server.1=10.99.0.81:2888:3888
server.2=10.99.0.82:2888:3888
server.3=10.99.0.83:2888:3888
  • 拷贝到另外两个节点
sudo scp /usr/soft/zookeeper/conf/zoo.cfg vm82:/usr/soft/zookeeper/conf/zoo.cfg
sudo scp /usr/soft/zookeeper/conf/zoo.cfg vm83:/usr/soft/zookeeper/conf/zoo.cfg

4. 检查zk状态

# vm81
$  docker exec -it zookeeper_node ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: leader

# vm82
$ docker exec -it zookeeper_node ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

# vm83
$ docker exec -it zookeeper_node ./bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /conf/zoo.cfg
Client port found: 2181. Client address: localhost. Client SSL: false.
Mode: follower

问题处理

  • Failed to start thread "GC Thread#0" - pthread_create failed (EPERM)
    这个错误是由于线程创建失败导致的。 docker启动参数中增加 --privileged=true

  • My id xx not in the peer list
    这是配置的问题,需要检查配置文件和myid文件

posted @ 2023-03-22 16:15  武平宁  阅读(213)  评论(0)    收藏  举报