在hcmaster、hcslave1和hcslave2三个节点上部署Zookeeper。
hcmasterhcslave1hcslave2leaderfollowerfollower 解压安装在hcmaster上,解压Zookeeper安装包到/usr/local/目录下
$ tar -zxvf zookeeper-3.4.13.tar.gz -C /usr/local/
配置服务器编号
-
在hcmaster上,在/usr/local/zookeeper-3.4.13/目录下创建data
$ mkdir -p data
-
在/usr/local/zookeeper-3.4.13/data目录下创建一个myid的文件
$ touch myid
-
编辑myid文件
$ vi myid
在文件中添加与server对应的编号:2
配置zoo.cfg文件-
重命名/usr/local/zookeeper-3.4.13/conf这个目录下的zoo_sample.cfg为zoo.cfg
$ mv zoo_sample.cfg zoo.cfg
-
打开zoo.cfg文件
$ vim zoo.cfg
- 修改数据存储路径配置 dataDir=/usr/local/zookeeper-3.4.13/data
- 增加如下配置 server.2=hcmaster:2888:3888 server.1=hcslave1:2888:3888 server.3=hcslave2:2888:3888
配置参数server.A=B:C:D解读:
- A. 是一个数字,表示这个是第几号服务器; 集群模式下配置一个文件myid,这个文件在dataDir目录下,这个文件里面有一个数据就是A的值,Zookeeper启动时读取此文件,拿到里面的数据与zoo.cfg里面的配置信息比较从而判断到底是哪个server。
- B. 是服务器的ip地址;
- C. 是服务器与集群中的Leader服务器交换信息的端口;
- D. 是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
同步/usr/local/zookeeper-3.4.13目录内容到hcslave1、hcslave2
$ xsync zookeeper-3.4.13/
并分别在hcslave1、hcslave2上修改myid文件中内容为1、3
注:如果myid的数字修改的不正确,程序会报错,比如在hcslave1和hcslave2上myid的值没有改变仍然为2,则在zookeeper.out中会出现错误提示: Cannot open channel to 6 at election address hcslave1… Cannot open channel to 6 at election address hcslave2…
集群操作 分别启动Zookeeper[hc@hcslave1 local]$ bin/zkServer.sh start
[hc@hcmaster local]$ bin/zkServer.sh start
[hc@hcslave2 local]$ bin/zkServer.sh start
注意:为保证hcmaster为leader,要按上面的启动顺序启动。
查看状态# bin/zkServer.sh status
注意:必须zkServer.sh status命令执行正确,才能确认Zookeeper启动成功。