一、安装zoopeeper3.4.6
没有集群的看我以前文章
zk集群在搭建部署的时候,通常选择 2n+1 奇数台。底层 Paxos 算法支持(过半成功)。
1.1. zk安全前提
服务器基础环境
IP
主机名
hosts映射
防火墙关闭
时间同步
ssh免密登录
JDK环境
jdk1.8
配置好环境变量
1.2. zk具体安装部署(选择node1安装 scp给其他节点)
1.2.1. 安装包
zookeeper-3.4.6.tar.gz
1.2.2. 上传解压重命名
cd /export/software/
tar zxvf zookeeper-3.4.6.tar.gz -C /export/server/
cd /export/server/
mv zookeeper-3.4.6/ zookeeper
1.2.3. 修改配置文件
1.2.3.1. zoo.cfg
#zk默认加载的配置文件是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:3888
1.2.3.2. myid
#在每台机器的dataDir指定的目录下创建一个文件 名字叫做myid
#myid里面的数字就是该台机器上server编号。server.N N的数字就是编号
[root@node1 conf]# mkdir -p /export/data/zkdata
[root@node1 conf]# echo 1 >/export/data/zkdata/myid
1.2.4. 把安装包同步到其他节点上
cd /export/server
scp -r zookeeper/ node2:$PWD
scp -r zookeeper/ node3:$PWD
1.2.5. 创建其他机器上myid和datadir目录
[root@node2 ~]# mkdir -p /export/data/zkdata
[root@node2 ~]# echo 2 > /export/data/zkdata/myid
[root@node3 ~]# mkdir -p /export/data/zkdata
[root@node3 ~]# echo 3 > /export/data/zkdata/myid
1.3. zk集群的启动
1.3.1. 每台机器上单独启动服务
#在哪个目录执行启动命令 默认启动日志就生成当前路径下 叫做zookeeper.out
/export/server/zookeeper/bin/zkServer.sh start|stop|status
#3台机器启动完毕之后 可以使用status查看角色是否正常。
#还可以使用jps命令查看zk进程是否启动。
[root@node3 ~]# jps
2034 Jps
1980 QuorumPeerMain #看我,我就是zk的java进程
1.4. 扩展:编写shell脚本 一键脚本启动。
本质:在node1机器上执行shell脚本,由shell程序通过ssh免密登录到各个机器上帮助执行命令。
1.4.1. 一键关闭脚本
root@node1 ~]# mkdir -p /onekey && cd /onekey
[root@node1 onekey]# vim zk2_stop.sh
#!/bin/bash
# 1 数组 放 主机名
hosts=(node1 node2 node3)
# 2 遍历 关闭
for host in ${hosts[*]}
do
ssh $host "source /etc/profile;/export/server/zookeeper/bin/zkServer.sh stop"
done
1.4.2. 一键启动脚本
[root@node1 onekey]# vim zk1_start.sh
#!/bin/bash
# 1 数组 放 主机名
hosts=(node1 node2 node3)
# 2 遍历 启动
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程序中自己加载。
chmod 777 /onekey/*
1.5. 使用客户端访问
/export/server/zookeeper/bin/zkCli.sh [-server ip]