前言
zookeeper 是分布式应用程序的分布式开源协调服务。它公开了一组简单的原语,分布式应用程序可以在这些原语的基础上实现更高级别的同步、配置维护、组和命名服务。

zookeeper应用广泛,作为一些框架的基础,例如kafka,hadoop-ha。

本文主要介绍了zookeeper的单台、集群搭建。

环境准备
软件版本
zookeeper-3.8.0
centos 7
假设你的环境已经:

关闭防火墙
配置好了jdk1.8的环境
修改了ip映射
修改了主机名
 

zookeeper-3.8.0 官网安装包下载链接

https://dlcdn.apache.org/zookeeper/zookeeper-3.8.0/apache-zookeeper-3.8.0-bin.tar.gz

单台部署方式

把 apache-zookeeper-3.8.0-bin.tar.gz 安装包拷贝至 /root/tools 目录(这个目录可以自行设定),

解压

解压至当前目录: 

tar -zxvf  apache-zookeeper-3.8.0-bin.tar.gz

配置环境变量

 编辑 profile文件:

  vi /etc/profile

# 添加以下内容 
export ZOOKEEPER_HOME=/root/tools/apache-zookeeper-3.8.0-bin
export PATH=$PATH:$ZOOKEEPER_HOME/bin

保存并生效:

source /etc/profile

修改配置文件zoo.cfg

进入conf目录:  cd /root/tools/apache-zookeeper-3.8.0-bin/conf

配置目录中没有zoo.cfg,使用zoo_sample.cfg复制一个: cp zoo_sample.cfg  zoo.cfg

编辑 zoo.cfg 文件(重要):

#用于计算的时间单元,单位为毫秒。比如session超时:N* tickTime。

tickTime=2000  

#用于集群,允许从节点连接并同步到master节点的初始化连接时间,以tickTime的倍数来表示。

initLimit=10

#用于集群,master主节点与从节点之间发送消息,请求和应答时间长度,超过一定的时间从节点就会被抛弃。(心跳机制)

syncLimit=5

#必须配置,比如用来存储事务文件的数据等。

dataDir=/data/zookeeper/data

#日志目录,如果不配置会和dataDir公用

dataLogDir=/data/zookeeper/log

#连接服务器的端口,默认2181

clientPort=2181

#单个client与单台server之间的连接数的限制,是ip级别的,默认是60。假设设置为0。那么表明不作不论什么限制。请注意这个限制的使用范围,不过单台client机器与单台ZKserver之间的连接数限制,不是针对指定clientIP,也不是ZK集群的连接数限制,也不是单台ZK对全部client的连接数限制。

maxClientCnxns=1200

#这个參数和上面的參数搭配使用,这个參数指定了须要保留的文件数目

autopurge.snapRetainCount=10

 # 3.4.0及之后版本号,ZK提供了自己主动清理事务日志和快照文件的功能,这个參数指定了清理频率。单位是小时。须要配置一个1或更大的整数,默认是0。表不开启自己主动清理功能

autopurge.purgeInterval=24

 wq!保存并退出文件。

启动zookeeper

cd  /root/tools/apache-zookeeper-3.8.0-bin/bin/

./zkServer.sh start

停止& 重启zookeeper

 ./zkServer.sh stop

./zkServer.sh restart

验证zookeeper

./zkCli.sh -server localhost:2181

验证OK。 

集群部署

创建myid(172.10.10.1机器)

cd  /data/zookeeper/data

vi myid

 保存退出。

编辑 zoo.cfg 文件:


#用于计算的时间单元,单位为毫秒。比如session超时:N* tickTime。
tickTime=2000  


#用于集群,允许从节点连接并同步到master节点的初始化连接时间,以tickTime的倍数来表示。

initLimit=10

#用于集群,master主节点与从节点之间发送消息,请求和应答时间长度,超过一定的时间从节点就会被抛弃。(心跳机制)

syncLimit=5

#必须配置,比如用来存储事务文件的数据等。

dataDir=/data/zookeeper/data

#日志目录,如果不配置会和dataDir公用

dataLogDir=/data/zookeeper/log

#连接服务器的端口,默认2181

clientPort=2181

#单个client与单台server之间的连接数的限制,是ip级别的,默认是60。假设设置为0。那么表明不作不论什么限制。请注意这个限制的使用范围,不过单台client机器与单台ZKserver之间的连接数限制,不是针对指定clientIP,也不是ZK集群的连接数限制,也不是单台ZK对全部client的连接数限制。

maxClientCnxns=1200

#这个參数和上面的參数搭配使用,这个參数指定了须要保留的文件数目

autopurge.snapRetainCount=10

 # 3.4.0及之后版本号,ZK提供了自己主动清理事务日志和快照文件的功能,这个參数指定了清理频率。单位是小时。须要配置一个1或更大的整数,默认是0。表不开启自己主动清理功能

autopurge.purgeInterval=24

# server.myid=你的三个节点的ip地址:2888:3888
# 2888:集群内机器通讯使用
# 3888:选举leader使用的端口

server.1=172.10.10.11:2888:3888
server.2=172.10.10.12:2888:3888
server.3=172.10.10.13:2888:3888



拷贝环境变量

把172.10.10.1 机器上的环境变量文件拷贝到其他两台机器

scp -r /etc/profile  root@172.10.10.12:/etc/

scp -r /etc/profile  root@172.10.10.13:/etc/

拷贝zookeeper

scp -r /root/tools/apache-zookeeper-3.8.0-bin/  root@172.10.10.12:/root/tools/

scp -r /root/tools/apache-zookeeper-3.8.0-bin/  root@172.10.10.13:/root/tools/

拷贝zookeeper的myid

scp -r /data/zookeeper/data/myid  root@172.10.10.12:/data/zookeeper/data/

scp -r /data/zookeeper/data/myid  root@172.10.10.13:/data/zookeeper/data/

分别把172.10.10.12 、172.10.10.13 的 /data/zookeeper/data/myid 改为  2  、3.

启动zookeeper

在3台机器上,分别执行

sh /apache-zookeeper-3.8.0-bin/bin/zkServer.sh start

查看状态

 sh /apache-zookeeper-3.8.0-bin/bin/zkServer.sh status

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐