本章将详细的介绍Zookeeper集群环境的构建和Zookeeper的相关问题介绍。ZooKeeper 是 Apache 的一个顶级项目,为分布式应用提供高效、高可用的分布式协调服务,提供了诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知和分布式锁等分布式基础服务。由于 ZooKeeper 便捷的使用方式、卓越的性能和良好的稳定性,被广泛地应用于诸如 Hadoop、HBase、Kafka 和 Dubbo 等大型分布式系统中。
一、Zookeeper的安装包安装 1.1 Zookeeper准备工作(JDK的安装)第一步一定要检查java环境,确保jdk的路径是没有错的。否则集群将构建失败。
保留好java的路径:/home/xjl/software/jdk1.8.0_301/bin/java
1.2 Zookeeper的安装配置
1.2.1 修改配置文件zoo.cfg
zookeeper的路径:/home/xjl/software/zookeeper-3.4.14/data
1.2.2 创建myid文件
那么就必须在 192.168.146.200 机器的的 /usr/local/software/zookeeper-3.3.6/data 目录下创建 myid 文件,然后在该文件中写上即可。后面的机器依次在相应目录创建myid文件,写上相应配置数字即可。
同时在zookeeper的config中添加:
server.1=10.84.111.51:2888:3888
server.2=10.84.111.154:2888:3888
server.3=10.84.111.214:2888:3888
1.2.3 配置环境变量
为了能够在任意目录启动zookeeper集群,我们需要配置环境变量。你也可以不配,这不是搭建集群的必要操作,只不过如果你不配置环境变量,那么每次启动zookeeper需要到安装文件的 bin 目录下去启动。
首先进入到 /etc/profile 目录,添加相应的配置信息:
#set zookeeper environment
export ZK_HOME=/usr/local/software/zookeeper-3.3.6
export PATH=$PATH:$ZK_HOME/bin
然后通过如下命令使得环境变量生效:
source /etc/profle
1.3 Zookeeper的集群的启动
表示的zookeeper集群表示成功
zookeeper 日志文件目录在:
dataDir 配置的目录下,文件名称为:zookeeper.out。通过查看日志来解决相应的问题。下面是两种常见的问题:
防火墙为关闭
查看防火墙状态:service iptables status
关闭防火墙:chkconfig iptables off
dataDir 配置的目录没有创建:
在 zoo.cfg 文件中,会有对 dataDir 的一项配置,需要创建该目录,并且注意要在该目录下创建 myid 文件,里面的配置和 zoo.cfg 的server.x 配置保持一致。
二、docker中构建Zookeeper集群环境(zookeeper3.4版本) 2.1 下载镜像docker pull docker.io/zookeeper:3.4.13
sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
docker tag zookeeper:3.4.14 zookeeper-3.4.14
2.4 编写dokcer-compose.yml文件
version: '2'
services:
zoo1:
image: zookeeper-3.4.14
restart: always
container_name: zoo1
ports:
- "2181:2181"
environment:
ZOO_MY_ID: 1
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
zoo2:
image: zookeeper-3.4.14
restart: always
container_name: zoo2
ports:
- "2182:2181"
environment:
ZOO_MY_ID: 2
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
zoo3:
image: zookeeper-3.4.14
restart: always
container_name: zoo3
ports:
- "2183:2181"
environment:
ZOO_MY_ID: 3
ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888
2.4 启动dokcer-compose.yml文件
docker-compose up -d
docker exec -it ID容器号 zkServer.sh status
特别说明:这里是Zookeeper的3.4.14 但是的如果是3.6以上的话,请参考其他的博文。
2.6 操作Zookeeper的节点docker exec -it 1a09f0f7abf7 /bin/bash
./zkCli.sh -server 127.0.0.1:2181
docker安装zookeeper集群_落叶飘零z的博客-CSDN博客_docker 安装zk集群
zookeeper 集群搭建 - YSOcean - 博客园