主要参考:https://blog.csdn.net/leanaoo/article/details/83188617
1.下载zookeeper
地址:http://mirrors.hust.edu.cn/apache/zookeeper/
2.在/usr下新建zookeeper文件夹
cd /usr
mkdir zookeeper
3.将压缩包上传至上述文件夹中,并解压缩
cd zookeeper
tar -zxf zookeeper-3.4.12.tar.gz
4.进行zookeeper配置
【添加zoo.cfg配置文件】
#进入到Zookeeper的配置目录
cd /usr/zookeeper/zookeeper-3.4.12/conf
#copy出来一个配置文件
cp zoo_sample.cfg zoo.cfg
【修改zoo.cfg配置文件】
将dataDir=/tmp/zookeeper 改为 dataDir=/usr/zookeeper/data
在最后添加
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888
【创建data文件夹】
#进入zookeeper目录
cd /usr/zookeeper/
#创建data文件夹
mkdir data
【创建myid文件】
#进入data目录
cd /usr/zookeeper/data
#创建myid文件
touch myid
【传入值并查看】
echo 1 > myid
cat myid
5.将配好的zookeeper传给另外两个主机(slave1和slave2)
scp -r /usr/zookeeper root@slave1:/usr
scp -r /usr/zookeeper root@slave2:/usr
6.分别在slave1和slave2上修改myid
以slave1为例:
#进入data目录
cd /usr/zookeeper/data
#修改值
echo 2 > myid
#查看
cat myid
7.启动集群
需要先将三台机子的防火墙关闭
#暂时关闭,重启会再开
systemctl stop firewalld
#永久关闭,需要手动开启
systemctl disable firewalld.service
然后在三台机子上分别执行启动zookeeper的命令
#进入bin目录
cd /usr/zookeeper/zookeeper-3.4.12/bin
#启动服务
./zkServer.sh start
结果显示:
ZooKeeper JMX enabled by default
Using config: /usr/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
注意:需要三台机子都执行了服务启动命令,再进行状态查看,不然会遇到错误(后面介绍)
状态查看
./zkServer.sh status
正常结果显示:
ZooKeeper JMX enabled by default
Using config: /usr/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: follower
可能遇到的错误显示:
ZooKeeper JMX enabled by default
Using config: /usr/zookeeper/zookeeper-3.4.12/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
这是因为前面所说的,没有在三台机子上都启动服务就查看了状态。
但是三台机子都启动服务后,报错的机子仍然有这个问题。
将所有机子的zookeeper服务先关闭,再重新开启,问题解决!
同样在bin目录下执行关闭服务命令
./zkServer.sh stop
然后重新开启服务即可。
8.zookeeper服务测试
在/usr/zookeeper/zookeeper-3.4.12/bin目录下,进入zkClient
./zkCli.sh
在某个主机上(master)创建一个文件,测试是否会同步到其他机器上。
#创建文件 /路径 内容
create /test hello
#查看文件内容
get /test
其他机子上
#查看
ls /
结果
[zookeeper, test]
删除
delete /test
查看
ls /
结果
[zookeeper]