1.zookeeper概述
- Zookeeper是一个高效的分布式协调服务,可以提供配置信息管理、命名、分布式同步、集群管理、数据库切换等服务。它不适合用来存储大量信息,可以用来存储一些配置、发布与订阅等少量信息。Hadoop、Storm、消息中间件、RPC服务框架、分布式数据库同步系统,这些都是Zookeeper的应用场景。
- zookeeper的基本单位是节点,节点可以有子节点
- zookeeper的端口号:2181
2.zookeeper的配置
- 上传Zookeeper安装包至 /usr/local/soft/ 目录中
- 解压安装包
tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz
#修改文件名
mv apache-zookeeper-3.5.7-bin zookeeper-3.5.7
# 修改zoo.cfg conf目录下
mv zoo_sample.cfg zoo.cfg
# zoo.cfg 配置文件修改
dataDir=/usr/local/soft/zookeeper-3.5.7/data
# zoo.cfg 配置文件添加
server.0=master:2888:3888
server.1=node1:2888:3888
server.2=node2:2888:3888
# 在zookeeper-3.5.7目录下
mkdir /usr/local/soft/zookeeper-3.5.7/data
- 在data目录中添加myid并且根据配置文件中的server添加对于的编号
- 分发目录到其他节点
cd /usr/local/soft/zookeeper-3.5.7
scp -r zookeeper-3.5.7/ node2:/usr/local/soft/
scp -r zookeeper-3.5.7/ node1:/usr/local/soft/ - 修改node1和node2中myid的编号
- 修改环境变量并使其生效
# ZOOKEEPER_HOME 分别在三个节点同时配置
export ZOOKEEPER_HOME=/usr/local/soft/zookeeper-3.5.7
export PATH=$PATH:$ZOOKEEPER_HOME/bin
source /etc/profile
zkServer.sh start
zkServer.sh status
zkCli.sh 表示连接默认ip及端口号 localhost:2181
# 连接到node1的zk上
zkCli.sh -server node1:2181 表示连接指定IP及端口号
3.zookeeper的命令
create 节点 -- 创建普通节点
create 节点 节点数据 -- 创建普通节点并携带数据
create -s 节点 --创建节点并在节点名称后添加编号
create -e 节点 --创建临时节点
get 节点
get -s 节点 查看节点中的数据并获取详细状态信息
get -w 节点 表示监听某个节点中的变化(只会触发一次效果)
set 节点 数据 -- 给节点重新赋予数据
stat /test2
delete 节点 -- 可以删除一个不为空的节点(没有子节点)
deleteall 节点
quit
4.zk连接idea的7种操作
- zk连接
- zk创建节点(Node)
- zk创建临时节点(EphemeralNode)
- zk获取节点地址值(DataFromNode)
- zk获取节点,子节点(迭代,递归)
- zk监听节点(GetChildrenChange)
- zk删除节点(DeletNode)(迭代,递归)
5.监听原理 , 选举机制
监听原理图解
选举机制图解