CentOS7安装Zookeeper集群
准备3台服务器(或更多的奇数台服务器)
我这里安装了3台虚拟机,IP地址分别是
192.168.1.232
192.168.1.200
192.168.1.233
虚拟机的安装,请参考Windows安装CentOS7
建议安装后切换一下yum源,否则后面的下载可能会出现问题,yum源切换参考:CentOS7更换yum源
安装JDK,参考:CentOS7安装OpenJDK
首先为所有服务器建立新用户
建立用户参考 CentOS7建立用户 和 CentOS7添加用户到sudoers
上面三台服务器我都建立了相同的 zookeeper 用户
修改每台机器的hostname名称,参考 CentOS7修改hostname
我这里对应ip的hostname分别是
192.168.1.232(zookeeper1)
192.168.1.200(zookeeper2)
192.168.1.233(zookeeper3)
修改每台机器的 /etc/hosts 文件,添加 IP 与主机名映射
vi /etc/hosts

改完之后,用cat命令查看一下内容,确保每台服务器的hosts文件内容都是一样的



为每台服务器下载最新zookeeper文件到zookeeper用户目录中
首先切换用户为zookeeper
su zookeeper
cd /home/zookeeper/
wget https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/stable/zookeeper-3.4.9.tar.gz

在所有服务器中解压缩zookeeper文件,解压后的文件夹名称为zookeeper
tar -zxvf zookeeper-3.4.9.tar.gz

mv zookeeper-3.4.9 zookeeper

在所有服务器zookeeper目录中创建data、logs目录
mkdir /home/zookeeper/zookeeper/data
mkdir /home/zookeeper/zookeeper/logs

在所有服务器的zookeeper/conf目录中,copy一份zoo_sample.cfg,并重命名为zoo.cfg
cp /home/zookeeper/zookeeper/conf/zoo_sample.cfg /home/zookeeper/zookeeper/conf/zoo.cfg
vi /home/zookeeper/zookeeper/conf/zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/home/zookeeper/zookeeper/data #修改这里
dataLogDir=/home/zookeeper/zookeeper/logs #新增这里
clientPort=2181
server.1=zookeeper1:2881:3881 #新增这里
server.2=zookeeper2:2881:3881 #新增这里
server.3=zookeeper3:2881:3881 #新增这里

在所有服务器的zookeeper/data目录中,创建myid文件,并在里面编写对应的编号,例如hostname为zookeeper1的服务器,myid内容就是1;zookeeper2服务器的myid内容就是2,以此类推,这个地方的编号,参考的是zoo.cfg中server.n的配置
vi /home/zookeeper/zookeeper/data/myid
使用cat命令查看如下



到此zookeeper已经安装完毕,下面分别启动所有服务器的zookeeper服务
cd ~
/home/zookeeper/zookeeper/bin/zkServer.sh start
所有服务器启动完毕后,可以看到
Starting zookeeper ... STARTED
然后可以通过status命令,查看当前服务器的状态
/home/zookeeper/zookeeper/bin/zkServer.sh status
可以看到下面两种信息,follower表示此节点为从节点,leader表示此节点为主节点
Mode: follower
Mode: leader



停止服务,需要分别在所有服务器中执行
/home/zookeeper/zookeeper/bin/zkServer.sh stop