Zookeeper系列介绍(持续更新)
Zookeeper与大多数分布式软件一样,安装模式一般分为:
- 单机部署:一般用来检验Zookeeper基础功能,熟悉ZK各种基础操作及特性;
- 伪集群部署:在单台机器上部署集群,方便在本地验证集群模式下的各种功能;
- 集群部署:一般在生产环境使用,具备一致性、分区容错性;
下载链接:http://mirror.bit.edu.cn/apache/zookeeper/
本文以zookeeper-3.4.14为例介绍Windows环境下的三种安装模式;
Zookeeper需要运行在Java环境中,因此安装ZK前首先需要保证Java环境运行正常;
1.单机部署
- 下载zookeeper-3.4.14.tar.gz,本地解压;
- 在zookeeper-3.4.14/目录下创建data文件夹和log文件夹;
- 将zookeeper-3.4.14/conf下的文件zoo_sample.cfg复制一份到当前目录下,重命名为zoo.cfg;
- 打开zoo.cfg,配置dataDir及dataLogDir选项;
dataDir=...\\zookeeper\\zookeeper-3.4.14\\data
dataLogDir=...\\zookeeper\\zookeeper-3.4.14\\log
【...代表zookeeper解压路径】- 进入/bin目录下,打开cmd,输入命令zkServer.cmd,启动Zookeeper服务端,出现以下画面即为启动成功;
- 进入/bin目录下,打开cmd,输入命令zkCli.cmd,启动Zookeeper客户端,进行操作,以下为示例;
- 服务端启动不成功情况及解决办法
- 解决方式:进入/bin目录下,编辑zkEnv.cmd文件,将set JAVA_HOME=%JAVA_HOME:"=%修改为set JAVA_HOME=C:\Program Files\Java\jre1.8.0_191(绝对路径)
2.伪集群部署
- 将单机部署模式下配置好的zk文件夹复制三分,分别命名为zk1、zk2、zk3,代表集群中的三个节点;
- 分别修改zk1、zk2、zk3下的/conf/zoo.cfg中的配置,修改如下(zk2、zk3下的配置与zk1类似,不同之处在于:dataDir和dataLogDir的路径、clientPort端口号):
server.num=ip/domain:port1:port2,参数含义如下:
num:表示第几号服务器;
ip/domain :服务器域名或者ip地址。
port1:当前服务器和Leader服务器交换信息的端口;
port2:当前Leader服务器宕机后,重新选举Leader时服务器之间交换信息的端口;在zk1、zk2、zk3的data文件夹下创建myid文件,文件中添加当前服务器num;
- 分别启动zk1、zk2、zk3下的zkServer.cmd,启动过程中会报错,这是因为当前服务器节点发现其他节点不在线,等集群节点全部启动后就会显示正常;【有一个节点会当选为Leader节点】
集群演示
- 如果想在集群中拥有observer 角色,则配置需要略微调整。假设zk3变为observer角色,则zk1、zk2、zk3的zoo.cfg修改如下:
server.1=127.0.0.1:2888:3888
server.2=127.0.0.1:2889:3889
server.3=127.0.0.1:2890:3890:observer
另外,zk3的zoo.cfg需要添加一个配置:peerType=observer,以用来开启observer;
集群模式
集群模式的安装方式与伪集群模式基本一致,只是替换server.num的配置即可;