本文演示使用三台Linux服务器安装Zookeeper,使用的是zookeeper-3.4.5版本,将zookeeper-3.4.5.tar.gz上传到linux服务器,
使用如下命令解压到/usr/local/目录下
进入/usr/local/目录下,给zookeeper文件夹改名成zookeeper
接着执行命令vi /etc/profile,修改系统配置,在后面添加如下配置
修改后执行source /etc/profile 使配置文件生效
接着再到/usr/local/zookeeper/conf目录下,先将zoo_sample.cfg 文件修改为zoo.cfg,
再修改zoo.cfg文件为如下情况,这里将dataDir=/usr/local/zookeeper/data(回头要创建这个data目录),再在底下添加配置如下:
server.0=192.168.1.103:2888:3888
server.1=192.168.1.106:2888:3888
server.2=192.168.1.105:2888:3888
这里三个IP地址对应三台服务器地址
接着回退到/usr/local/zookeeper目录,执行mkdir data 创建data目录,再进入data目录,执行vi myid 创建并编辑myid文件,在这之前上面的步骤在三台服务器上的操作都是一样的,接着IP为192.168.1.103的服务器在myid里输入0,接着IP为192.168.1.106的服务器在myid里输入1,接着IP为192.168.1.105的服务器在myid里输入2,分别对应上面的这段配置:
server.0=192.168.1.103:2888:3888
server.1=192.168.1.106:2888:3888
server.2=192.168.1.105:2888:3888
到这里就可以启动zookeeper了,执行zkServer.sh start(之前配置了环境变量,任意目录下都可执行),注意zookeeper依赖java环境,记得提前安装好
三台都启动后,先用查看线程方法看看是否启动成功,执行ps -an | grep zookeeper,看到如下信息证明启动成功。
接着使用zookeeper的查看状态,执行zkServer.sh status,看到如下信息证明查看状态成功,一台leader,两台follower。
注意:这里有可能执行完zkServer.sh start后已经启动成功,但使用zkServer.sh status查看状态时却显示如下:
这里使用的是3.4.5版本的zookeeper,经过一翻折腾,最后通过关闭防火墙解决了这个问题,执行关闭防火墙命令,这里用的CentOS的7.2版本的,使用如下命令关闭(CentOS 7版本后默认用的是firewalld):
sudo systemctl stop firewalld.service && sudo systemctl disable firewalld.service
如果是7之前版本则使用service iptables stop关闭,使用service iptables status查看状态,也可以使用chkconfig iptables off禁用防火墙,防止下次开机后自动重启。