zookeeper是一个高度可靠的分布式协调服务,其他的一些集群的高可用(HA)都是通过zookeeper集群来实现的。
搭建zookeeper集群的前提是先安装jdk(zookeeper集群内每一台机器都要安装),因为zookeeper是用java编写的。
jdk是否安装成功验证如下:
将下载好的zookeeper解压到安装目录:
修改zookeeper的配置文件:
1:修改为文件名建议使用cp(拷贝命令)
2:修改配置文件
修改数据目录dataDir
添加集群各个节点(建议单数方便内部选举) 用主机名的前提是在hosts文件配置好了映射关系 否则使用IP
3:添加zookeeper集群节点的id
添加格式:server.x=nodex 将server.x中的x添加到nodex节点的myid文件(echo x > myid)
本人要案例要在node09 的myid添加 1 node10 的myid添加 2 node11 的myid添加 3
配置好的zookeeper要启动或者也关闭是需要去每一个安装的节点下执行它的shell脚本觉得特别麻烦
为了偷懒写一个自己的shell脚本一键启动或关闭.(将红色字体标记部分修改为你自己的既可运行)
vi zkManagement.sh
#!/bin/bash
for i in {"node09","node10","node11"};
do
echo "----------$1ing $i----------"
ssh $i "source /etc/profile;/usr/local/app/zookeeper-3.4.6/bin/zkServer.sh $1"
done
sleep 5
for j in {"node09","node10","node11"};
do
echo "----------$j status----------"
ssh $j "source /etc/profile;/usr/local/app/zookeeper-3.4.6/bin/zkServer.sh status"
done
chmod 777 zkManagement.sh
注释:{节点}这里填写的是你自己zk集群的节点名称(配置了ip和主机名的映射关系)
echo "----------$1ing $i----------" 打印提示信息(可选,方便提示信息的阅读) $1指的是你的第一个参数
ssh个格式ssh $i "source /etc/profile;自己zk安装的目录 参数"(配置了ssh免密登入)
sleep 5 休眠5秒
启动运行格式 ./文件名 start
运行结果如下:
[root@spark01 ~]# ./zkManagerment.sh start
----------starting spark01----------
ZooKeeper JMX enabled by default
Using config: /usr/local/app/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
----------starting spark02----------
ZooKeeper JMX enabled by default
Using config: /usr/local/app/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
----------starting spark03----------
ZooKeeper JMX enabled by default
Using config: /usr/local/app/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
----------spark01 status----------
ZooKeeper JMX enabled by default
Using config: /usr/local/app/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: follower
----------spark02 status----------
ZooKeeper JMX enabled by default
Using config: /usr/local/app/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: leader
----------spark03 status----------
ZooKeeper JMX enabled by default
Using config: /usr/local/app/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: follower
关闭运行格式 ./文件名 stop
运行结果如下:
[root@spark01 ~]# ./zkManagerment.sh stop
----------stoping spark01----------
ZooKeeper JMX enabled by default
Using config: /usr/local/app/zookeeper-3.4.12/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
----------stoping spark02----------
ZooKeeper JMX enabled by default
Using config: /usr/local/app/zookeeper-3.4.12/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
----------stoping spark03----------
ZooKeeper JMX enabled by default
Using config: /usr/local/app/zookeeper-3.4.12/bin/../conf/zoo.cfg
Stopping zookeeper ... STOPPED
----------spark01 status----------
ZooKeeper JMX enabled by default
Using config: /usr/local/app/zookeeper-3.4.12/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
----------spark02 status----------
ZooKeeper JMX enabled by default
Using config: /usr/local/app/zookeeper-3.4.12/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
----------spark03 status----------
ZooKeeper JMX enabled by default
Using config: /usr/local/app/zookeeper-3.4.12/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.