下载解压
https://zookeeper.apache.org/releases.html
从上面网址找到相应版本的bin压缩包,体积小的是源码!
1 | 下载 |
配置Zookeeper
先给文件夹改个名字
mv zookeeper-3.8.0/ zookeeper
修改配置文件
zoo.cfg
1
2
3
4
5
6
7
8
9
10
11
12zk默认加载的配置文件是zoo.cfg 因此需要针对模板进行修改,保证名字正确。
cd zookeeper/conf
mv zoo_sample.cfg zoo.cfg
vi zoo.cfg
修改
dataDir=/export/data/zkdata
文件最后添加 2888心跳端口 3888选举端口
server.1=node1:2888:3888
server.2=node2:2888:3888
server.3=node3:2888:3888myid
1
2
3
4
5
6在每台机器的dataDir指定的目录下创建一个文件 名字叫做myid
myid里面的数字就是该台机器上server编号。server.N N的数字就是编号
mkdir -p /export/data/zkdata
echo 1 > /export/data/zkdata/myid把安装包同步到其他节点上
1
2
3cd /export/server
scp -r zookeeper/ node2:$PWD
scp -r zookeeper/ node3:$PWD创建其他机器上myid和datadir目录
1
2
3
4
5
6
7node2
mkdir -p /export/data/zkdata
echo 2 > /export/data/zkdata/myid
node3
mkdir -p /export/data/zkdata
echo 3 > /export/data/zkdata/myid
至此,Zookeeper配置完毕。
启动Zookeeper
每台机器上单独启动服务
1
2
3
4
5
6
7
8
9
10
11
12在哪个目录执行启动命令 默认启动日志就生成当前路径下 叫做zookeeper.out
/export/server/zookeeper/bin/zkServer.sh start
停止和查看状态
stop|status
3台机器启动完毕之后 可以使用status查看角色是否正常。
还可以使用jps命令查看zk进程是否启动。
[root@node3 ~]# jps
2034 Jps
1980 QuorumPeerMain #看我,我就是zk的java进程
在node1机器上执行shell脚本,程序通过ssh免密登录到各个机器上帮助执行命令。
一键关闭脚本
1
2
3
4
5
6
7
8vim stopZk.sh
#!/bin/bash
hosts=(node1 node2 node3)
for host in ${hosts[*]}
do
ssh $host "/export/server/zookeeper/bin/zkServer.sh stop"
done一键启动脚本
1
2
3
4
5
6
7
8vim startZk.sh
#!/bin/bash
hosts=(node1 node2 node3)
for host in ${hosts[*]}
do
ssh $host "source /etc/profile;/export/server/zookeeper/bin/zkServer.sh start"
done注意:关闭java进程时候 根据进程号 直接杀死即可就可以关闭。启动java进程的时候 需要JDK。
shell程序ssh登录的时候不会自动加载/etc/profile 需要shell程序中自己加载。
添加执行权限
1 | chmod u+x stopZk.sh |