首先下载ZK的二进制安装包:http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.14/
将安装包上传到Linux上:
-
进行解压 : tar zxvf zookeeper-3.4.14.tar.gz
-
进行更名 : mv zookeeper-3.4.14 zookeeper
-
删除压缩包 :rm -rf zookeeper-3.4.14.tar.gz
进入到我们更名后的ZK文件夹内创建个文件夹 : mkdir data
进入到conf文件夹 复制一个文件且更名: cp zoo_sample.cfg zoo.cfg
对zoo.cfg文件进行编辑 vim zoo.cfg
数据文件夹dataDir指定为我们刚刚创建的那个data文件夹的路径,不要使用系统的/tmp目录作为ZK的数据目录
然后我们就可以启动服务了,在解压文件的bin目录下 :
-
启动服务: ./zkServer.sh start
-
查看状态: ./zkServer.sh status
单机的我们到这里就算是搭建完成了,用于测试环境还行,由于单机的服务都存在一个致命问题那就是单点故障问题,所以一般在生产环境中诸多这种类型的服务都是以集群的方式出现,下面我们搭建一个由三台服务器构成的的ZK集群
集群环境的搭建
在ZK集群环境下只要一般以上的机器正常启动了,那么这个集群服务就是OK 的,所以一把参与集群的机器都是单,比如5个机器,只需要3个正常就OJBK,下面我们就简单的使用三个机器搭建一下ZK的集群环境,三台机器的ip分别为如下:
-
192.168.159.159
-
192.168.159.169
-
192.168.159.179
和创建单机环境一莫一样的步骤,只是添油加醋
首先我们在159的机器上开动
如法炮制
zk二进制文件上传、解压、更名、参考前面单机安装
首先在解压文件下创建data文件夹,用于保存内存数据库保存的模糊快照 :mkdir data
然后就是复制并更名一个文件 :cp zoo_sample.cfg zoo.cfg
添油加醋
编辑该文件 vim zoo.cfg
-
第一个修改dataDir指向我们创建的data目录
-
第二个在下面添加如下图数据
首先解释一下添加并圈起来的数据:
-
sserver.1:表示这个ZK启动后,ZK的myId就是 1
-
后面跟对应服务器的ip
-
然后就是2888,这是一个连接端口号,数据通讯的时候(比如同步 )通过这个端口号进行通讯
-
然后就是3888,这是一个选举端口号,当选举时使用这个端口号进行通讯
创建myid文件
除了修改 zoo.cfg 配置文件,集群模式下还要配置一个文件 myid,这个文件在 dataDir 目录下,这个目录也是我们自己创建的,也就是那个data目录,这个文件里面就只有一个数据就是 刚刚配置的那个myId的值,Zookeeper 启动时会读取这个文件,拿到里面的数据与 zoo.cfg 里面的配置信息比较从而判断到底是那个server。
在创建的data文件夹内创建文件: vi myid
每个机器都键入对应myid保存退出即可 比如59的myid为1 ,69的myid为2,就是配置文件中那个myid
配置环境变量
vi /etc/profile 在末端添加如下数据
-
export ZOOKEEPER_HOME=/usr/local/ZK/zookeeper
-
export PATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf
退出保存后进入到 /etc 目录下 执行刷新生效命令 source profile
然后就是我们三台机器的启动工作了:
-
-
查看状态:zkServer.sh status
三台机器的状态依次为:
这里提醒一下,防火墙我是直接关闭了的,要么你的开通那几个端口,要么直接关闭防火墙服务