目录

1、单机部署

1.1、Windows环境

1.2、Linux环境

2、集群部署

3、伪集群部署


部署之前要确保Zookeeper所在的环境已配置好JDK。

1、单机部署

1.1、Windows环境

  • 解压“zookeeper-3.4.10.tar.gz”

                                

  • 在zookeeper根路径下打开conf文件夹,然后复制“zoo_sample.cfg”文件并重命名为“zoo.cfg”

                                

  • 修改zoo.cfg配置文件
//将配置文件中的dataDir路径调整为下面的路径
dataDir=../data
  • 在zookeeper根路径下创建data文件夹
  • 在zookeeper根路径下打开bin文件夹,然后双击“zkServer.cmd”脚本运行zookeeper

1.2、Linux环境

  • 上传“zookeeper-3.4.10.tar.gz”至Linux服务器
  • 使用“tar -zxvf zookeeper-3.4.10.tar.gz -C 解压后的路径”命令来解压zookeeper安装包
  • 在zookeeper根路径下打开conf文件夹,然后复制“zoo_sample.cfg”文件并重命名为“zoo.cfg”

                     

  • 修改zoo.cfg配置文件
//将配置文件中的dataDir路径调整为下面的路径
dataDir=../data
  • 在zookeeper根路径下使用“mkdir data"命令创建data文件夹
  • 在zookeeper根路径下打开bin文件夹,然后输入“./zkServer.sh start”命令运行zookeeper

  • 最后输入“./zkServer.sh status”命令查看zookeeper运行状态 

2、集群部署

  • 准备三台服务器(后续步骤是三台服务器同时操作)
服务器名称服务器IP地址
mine01192.168.40.128
mine02192.168.40.129
mine03192.168.40.130
  • 使用root用户修改“/etc/hosts”文件,输入下面的命令来配置IP地址和域名的映射。防止后续服务器IP地址变更后,调整集群配置时只需要调整hosts文件中的IP映射,然后重启集群即可。
sudo echo "192.168.40.128 zookeeper01" >> /etc/hosts
sudo echo "192.168.40.129 zookeeper02" >> /etc/hosts
sudo echo "192.168.40.130 zookeeper03" >> /etc/hosts
  • 上传“zookeeper-3.4.10.tar.gz”至Linux服务器
  • 使用“tar -zxvf zookeeper-3.4.10.tar.gz -C 解压后的路径”命令来解压zookeeper安装包
  • 在zookeeper根路径下打开conf文件夹,然后复制“zoo_sample.cfg”文件并重命名为“zoo.cfg”
  • 修改zoo.cfg配置文件
# 通信心跳数,Zookeeper 服务器与客户端心跳时间,单位毫秒
# 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的最小超时时间是2*tickTime)
tickTime=2000
# 集群中的Follower跟随者服务器与Leader领导者服务器之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限
initLimit=10
# 集群中Leader与Follower之间的最大响应时间单位,假如响应超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer
syncLimit=5
# 数据文件目录+数据持久化路径。主要用于保存 Zookeeper 中的数据。
dataDir=/app/zookeeper-3.4.10/data
# 监听客户端连接的端口
clientPort=2181
# server.A=B:C:D
# A 是一个数字,表示这个是第几号服务器。集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。
# B 是这个服务器的地址
# C 是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口
# D 是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口
server.0=zookeeper01:2888:3888
server.1=zookeeper02:2888:3888
server.2=zookeeper03:2888:3888
  • 在zookeeper根路径下使用“mkdir data"命令创建data文件夹
  • 在data目录下使用“touch myid”命令来创建“myid”文件,然后按照“zoo.cfg”配置文件来设置“myid”文件中的值,然后保存即可
#zookeeper01中myid值为0
#zookeeper02中myid值为1
#zookeeper03中myid值为2
  • 在zookeeper根路径下打开bin文件夹,然后输入“./zkServer.sh start”命令运行zookeeper(我启动的顺序为:mine01、mine03、mine02,所以下面的状态中mine03是Leader)
  • 最后输入“./zkServer.sh status”命令查看zookeeper运行状态,三台服务器中zookeeper的状态依次如下:

3、伪集群部署

所谓的伪集群就是将集群中的zookeeper都部署在同一台服务器中。

  • 准备一台服务器
服务器名称服务器IP地址
mine01192.168.40.128
  • 使用root用户修改“/etc/hosts”文件,输入下面的命令来配置IP地址和域名的映射。防止后续服务器IP地址变更后,调整集群配置时只需要调整hosts文件中的IP映射,然后重启集群即可。
sudo echo "192.168.40.128 zookeeper" >> /etc/hosts
  • 上传“zookeeper-3.4.10.tar.gz”至Linux服务器
  • 使用“tar -zxvf zookeeper-3.4.10.tar.gz -C 解压后的路径”命令来解压zookeeper安装包
  • 使用“mv zookeeper-3.4.10 zookeeper01”命令修改zookeeper文件夹名称,然后继续使用“tar -zxvf zookeeper-3.4.10.tar.gz -C 解压后的路径”命令来解压zookeeper安装包,修改“mv zookeeper-3.4.10 zookeeper02”修改文件夹名称,最后还需使用一次“tar -zxvf zookeeper-3.4.10.tar.gz -C 解压后的路径”命令来解压zookeeper安装包,最后一次使用“mv zookeeper-3.4.10 zookeeper03”命令修改文件夹名称,至此,三个zookeeper以准备好。
  • 分别在zookeeper01,zookeeper02以及zookeeper03根路径下打开conf文件夹,然后复制“zoo_sample.cfg”文件并重命名为“zoo.cfg”
  • 修改zoo.cfg配置文件,配置文件内容跟集群配置中的一样,但是有两处需要修改,修改内容如下(主要是端口不能相同,不然会启动报错,端口被占用):
#zookeeper01
clientPort=2181
dataDir=/app/zookeeper01/data
server.0=zookeeper:2888:3888
server.1=zookeeper:4888:5888
server.2=zookeeper:6888:7888

#zookeeper02
clientPort=2182
dataDir=/app/zookeeper02/data
server.0=zookeeper:2888:3888
server.1=zookeeper:4888:5888
server.2=zookeeper:6888:7888

#zookeeper03
clientPort=2183
dataDir=/app/zookeeper03/data
server.0=zookeeper:2888:3888
server.1=zookeeper:4888:5888
server.2=zookeeper:6888:7888
  • 在zookeeper根路径下使用“mkdir data"命令创建data文件夹
  • 在data目录下使用“touch myid”命令来创建“myid”文件,然后按照“zoo.cfg”配置文件来设置“myid”文件中的值,然后保存即可
#zookeeper01中myid值为0
#zookeeper02中myid值为1
#zookeeper03中myid值为2
  • 在zookeeper根路径下打开bin文件夹,然后输入“./zkServer.sh start”命令运行zookeeper
  • 最后输入“./zkServer.sh status”命令查看zookeeper运行状态,其中zookeeper01和zookeeper03为Follower,zookeeper02位Leader。

至此,Zookeeper各种部署方法介绍完毕

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐