一、下载zookeeper安装包
- 在官网中下载,对于在墙内的用户,并不推荐该方式下载速度可能比较慢
- 推荐方式:在cloudera仓库进行下载,相较于官网下载更加稳定快速,地址http://archive.cloudera.com/cdh5/cdh/5/,选择需要版本下载tar.gz的安装包
二、将安装包上传解压到服务器指定目录
执行 tar -zxvf zookeeper-3.4.13.tar.gz -C /usr/local/java/zookeeper/
将zookeeper解压到指定的zookeeper
目录,根据用户自己的需要进行替换
三、对默认配置文件进行重命名
将zookeeper根目录中conf文件夹下的zoo_sample.cfg重命名为zoo.cfg,修改后zookeeper便可以识别到该文件
四、修改zoo.cfg配置文件
在该文件中根据需要添加如下配置:
Ps:上面的data目录和dataLog目录默认是没有的,需要自己预先建立好。并且真正用户开发环境的配置文件,尽量删除删掉上面的注释,以及多余的空白字符(划重点),有可能会造成zookeeper的读取失败
这里我自己阅读时候发现zoo.cfg这个配置文件的dataLogDir路径错了 正确的是/usr/local/java/zookeeper/log 如下图所示
五、新建myid文件
在server1机器中,在上面配置的data目录下,新建一个名为 myid的文件,文件内容填写 1,对的,没有听错,文件中只保留一个数字 1。zookeeper是根据该文件来决定zookeeper集群各个机器的身份分配。
六、将配置好的zookeeper分发到集群的所有机器
经过上面的五个步骤zookeeper已经配置完毕,然后将其依次拷贝的集群的其他机器中。快捷一点可以使用 scp 命令来做这件事:
scp 本地zookeeper安装目录 登陆远程机器的用户名@远程机器地址 : 远程机器存放zookeeper的地址
eg:scp zookeeper skyler@slave1:
/usr/local/java/zookeeper/
注意:
报一个这样的错 not a regular file 说不是一个file 解决版本就是价格 -r 表示循环目录 scp -r zookeeper skyler@slave1:/usr/local/java/zookeeper/ 这样就可以解决
然后修改data目录的下的myid 文件中的数字,在这里即为将server2的myid内容修改为2,将server3的myid内容修改为3。对于不同的集群,根据需要进行修改,与配置文件中的order保持一致。
七、启动zookeeper服务
修改完成后,在每台机器上依次使用bin/zkServer.sh start
来启动zookeeper服务,待启动完成后使用 bin/zkServer.sh status
来查看该机器的身份
八、启动zookeeper客户端检验服务是否可用
使用 bin/zkCli.sh
来检验zookeeper是否可以连接成功,若出现如下提示,则表示zookeeper服务已经安装成功。