集群安装
安装zookeeper之前,必须先安装Java环境。
本文ZooKeeper版本:3.8.0
下载并解压
开始之前需要先去下载安装包,在官网zookeeper.apache.org/releases.ht…中找到对应版本的ZooKeeper。我这边下载的是3.8版本编译后的压缩包apache-zookeeper-3.8.0-bin.tar.gz(一个包可以用在各个平台上),如果是在Linux,Mac OS或者其他类Unix的系统上可以直接通过命令解压:
tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz
如果是windows可以使用第三方的解压工具处理,解压后如下图
如上bin目录中包含了ZooKeeper的启动脚本,以.sh
结尾的脚本是运行在UNIX平台(Linux,Mac OS等),以.cmd
结尾的脚本是运行在Windows上的。在conf目录中保存的是相关的配置文件,其中的zoo_sample.cfg是官方的配置模版,这两个目录是我们最常用到的了。
修改配置文件
复制并重命名conf目录下的配置文件zoo_sample.cfg为zoo.cfg(加载的是这个名字的配置文件)
- 修改zk快照以及日志存放的位置
dataDir
- 在zoo.cfg的最下面增加所有节点的信息,如下
# server.id = ip:port:port
server.1=xxx:2888:3888
server.2=xxx:2888:3888
server.3=xxx:2888:3888
....... # 所有节点
每一行表示一个节点,每个的含义分别如下。
- server: 标注每个节点,其中的序号可以快速选出leader(对应创建的myid文件)
- xxx: ZooKeeper的每台节点服务器IP(提示: 查看 ip 地址可以用 ifconfig 命令。)
- 3888: 第一次启动或者leader挂掉的时候通过这个端口让各个节点之间建立连接,通过投票选举出leader。
- 2888: 有leader之后,leader节点会启动2888端口,其他follower节点通过这个端口和leader建立连接,完成后续的命令,任务等。
- 客户端连接端口默认clientPort=2181,根据情况调整
- 在dataDir文件下创建对应myid文件,内容是数字序号与前面的server.1,server.2,server.3 .....中的数字对应
在一台机器上修改了完成,然后把这个ZooKeeper文件复制到各个机器上,修改对应的配置即可
因为我就一台电脑,总共弄了3节点,具体每个节点的配置如下
启动
依次在三个bin目录下命令./zkServer.sh start
启动或者使用./zkServer.sh start-foreground
控制台输出的方式启动ZooKeeper( 启动期间会出现错误信息,是正常的,因为其他连接的节点还没有启动,暂时连接不上)
如上三台启动成功,leader代表主节点,follower代表从节点,一主二从。
在另一个命令工具上使用./zhCli.sh
客户端连接ZooKeeper,开启新的session会话
可以看到客户端的一些操作命令
我是纪先生,用输出倒逼输入而持续学习,持续分享技术系列文章,以及全网值得收藏好文,欢迎关注公众号,做一个持续成长的技术人。
- 我正在参与掘金技术社区创作者签约计划招募活动,点击链接报名投稿。