生命无罪,健康万岁,我是laity。
Sete vezes desprezei a minha alma:
Pela primeira vez, fingiu humildade quando poderia ter sido agressivo;
Na segunda vez, quando estiver vazio, encha-o de luxúria;
Na terceira vez, entre difícil e fácil, escolheu o fácil;
Pela quarta vez, errou, mas consolou-se dizendo que outros também errariam;
Na quinta vez, é livre e fraco, mas é considerado como a tenacidade da vida;
Na sexta vez, quando despreza um rosto feio, não sabe que é uma de suas próprias máscaras;
Pela sétima vez, inclinou-se de lado na lama da vida, embora não se reconciliasse, era tímido.
Instalação do Docker ZK
- Veja os espelhos locais e recupere e puxe os espelhos do Zookeeper
# 查看本地镜像
docker images
# 检索ZooKeeper 镜像
docker search zookeeper
# 拉取ZooKeeper镜像最新版本
docker pull zookeeper:latest
# 我使用的版本
docker pull zookeeper:3.5.7
- Crie um diretório de montagem do ZooKeeper (diretório de montagem de dados, diretório de montagem de configuração e diretório de montagem de log)
mkdir -p /mydata/zookeeper/data # Diretório de montagem de dados
mkdir -p /mydata/zookeeper/conf # Diretório de montagem de configuração
mkdir -p /mydata/zookeeper/logs # Diretório de montagem de log
- Iniciar o contêiner ZooKeeper
docker run -d --name zookeeper --privileged=true -p 2181:2181 -v /mydata/zookeeper/data:/data -v /mydata/zookeeper/conf:/conf -v /mydata/zookeeper/logs:/datalog zookeeper:3.5.7
- Descrição do parâmetro
-e TZ="Asia/Shanghai" # 指定上海时区
-d # 表示在一直在后台运行容器
-p 2181:2181 # 对端口进行映射,将本地2181端口映射到容器内部的2181端口
--name # 设置创建的容器名称
-v # 将本地目录(文件)挂载到容器指定目录;
--restart always #始终重新启动zookeeper,看需求设置不设置自启动
- Adicione o arquivo de configuração do ZooKeeper e adicione o arquivo de configuração zoo.cfg no diretório do arquivo de configuração montado (/mydata/zookeeper/conf). O conteúdo da configuração é o seguinte:
dataDir=/data # 保存zookeeper中的数据
clientPort=2181 # 客户端连接端口,通常不做修改
dataLogDir=/datalog
tickTime=2000 # 通信心跳时间
initLimit=5 # LF(leader - follower)初始通信时限
syncLimit=2 # LF 同步通信时限
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
standaloneEnabled=true
admin.enableServer=true
server.1=localhost:2888:3888;2181
- Entre no contêiner e verifique o status do contêiner
# 进入zookeeper 容器内部
docker exec -it zookeeper /bin/bash
# 检查容器状态
docker exec -it zookeeper /bin/bash ./bin/zkServer.sh status
# 进入控制台
docker exec -it zookeeper zkCli.sh
- Instalar a conexão do cliente ZooInspector
Endereço de download: https://issues.apache.org/jira/secure/attachment/12436620/ZooInspector.zip;
Ordem:
java -jar zookeeper-dev-ZooInspector.jar
O problema encontrado: AVISO: o encaminhamento de IPv4 está desativado. A rede não funcionará
解决办法:
# vi /etc/sysctl.conf
或者
# vi /usr/lib/sysctl.d/00-system.conf
添加如下代码:
net.ipv4.ip_forward=1
重启network服务
# systemctl restart network
teste
docker exec -it zookeeper zkCli.sh
Artigos sobre a introdução detalhada da operação do zookeeper
O Docker instala o cluster Zookeeper
- Prepare três máquinas para fazer ping entre si
- Arquivo de configuração zoo.cfg
cd /mydata/zookeeper/conf
vim zoo.cfg
# 三台机器分别执行添加
clientPort=2181
dataDir=/data
dataLogDir=/data/log
tickTime=2000
initLimit=5
syncLimit=2
autopurge.snapRetainCount=3
autopurge.purgeInterval=0
maxClientCnxns=60
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888
- Definir myid ID
echo 1 > /mydata/zookeeper/conf/myid
1、2、3 三台机器分别执行
zookeeper选举也会根据myid的大小进行投票master