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文件

浙公网安备 33010602011771号