前提
准备工作:三台虚拟机 都安装jdk
安装步骤
创建两个目录
放安装包的文件夹
mkdir software
一个安装目录
mkdir /opt/install
安装一个上传工具
yum -y install lrzsz
cd /software
将zookeeper压缩包直接拖到 xshell里
解压
tar -zx zookeeper-3.4.5-cdh5.14.2.tar.gz
将解压后的 zooleeper 移动到 install 下并重命名
mv zookeeper-3.4.5-cdh5.14.2 /opt/install/zookeeper
cd /opt/install/zookeeper/conf/
拷贝文件并改名
cp zoo_sample.cfg zoo.cfg
编辑文件并使光标停在第一次索引到 dataDir 的行首
vi +/dataDir zoo.cfg
修改光标所在行内容为
dataDir=/opt/install/zookeeper/data
在行尾加入以下内容(增加服务器配置)
server.编号=four(虚拟机名):2888(选举端口):3888(通信端口)
server.4=four:2888:3888
server.5=five:2888:3888
server.6=six:2888:3888
到zookeeper的家目录下
cd /opt/install/zookeeper/
mkdir data
cd data
echo 1 > myid
cd /opt/
远程拷贝(未设置免密登录需输入密码)
将 install 目录拷贝到 主机名为 four的虚拟机的 当前目录下
scp -r install/ four:`pwd`
在虚拟机名为 five 的主机 (数字要和主机名对应)
echo 5 > /opt/install/zookeeper/data/myid
选项卡排列选择瓷砖排序
点击工具 选择 发送键到所有会话
竞选机制
到zookeeper的家目录下
cd /opt/install/zookeeper/
启动服务
bin/zkServer.sh start
查看进程
jps
[root@six zookeeper]# jps
1245 Jps
1214 QuorumPeerMain
查看服务状态
bin/zkServer.sh status
[root@six zookeeper]# bin/zkServer.sh status
JMX enabled by default
Using config: /opt/install/zookeeper/bin/../conf/zoo.cfg
Mode: leader
同时启动时 可以看到虚拟机编号(myid)大的为leader(myid对应虚拟机)
查看leader的端口号
jps
[root@six zookeeper]# jps
1702 Jps
1643 QuorumPeerMain
干掉 leader
kill -9 1643
myid 大的 变为 leader
[root@five zookeeper]# bin/zkServer.sh status
JMX enabled by default
Using config: /opt/install/zookeeper/bin/../conf/zoo.cfg
Mode: leader
运行机制
上面我们的三台机器 停掉一台 依然可以使用
只要有一半以上的的机器存活就可以使用zookeeper服务
临时节点 和 通知机制
临时节点随着客户端的断开而消失
临时节点消失了会通知注册者
开启上面关闭的服务器
bin/zkServer.sh start
在zookeeper 家目录下(三台都启动客户端)
bin/zkCli.sh
创建一个临时节点(1号窗口)
create -e /tempnode 'temp'
在另一台虚拟机注册(三号窗口)
get /tempnode watch