- 目录
1.zookeeper基础信息
2.zookeeper部署
1. 单点
2. 分布式
1.解压
2.软连接
3.环境变量
4.删除相关cmd文件
5.添加zookeeper文件夹
5.1添加server
6.同步
7.指定zk机器号
8.启动 【三台机器一起做】
群起脚本 (bigdata13机器)
3.zk
4.节点
5.操作命令
1.登录节点
2.查看节点
3. 查看节点内容
4. 获取当前节点状态 stat
5.创建节点
1.永久节点
2.临时节点:
3.顺序节点
6.修改数据内容 set
7.删除节点
7.监听相关 zk
-
1.zookeeper基础信息
- 官网 https://zookeeper.apache.org
- ·作用: 分布式协调服务
-
2.zookeeper部署
-
1. 单点
-
2. 分布式
- 部署机器个数: 2n + 1 台
- 主从架构
- leader
- follower
-
1.解压
- 上传apache-zookeeper-3.8.0-bin.tar.gz
- 解压
[hadoop@bigdata13 software]$ tar -zxvf apache-zookeeper-3.8.0-bin.tar.gz -C ~/app/
-
2.软连接
- [hadoop@bigdata13 app]$ ln -s apache-zookeeper-3.8.0-bin/ zookeeper
-
3.环境变量
- [hadoop@bigdata13 app]$ vim ~/.bashrc
#ZK_HOME export ZK_HOME=/home/hadoop/app/zookeeper export PATH=${PATH}:${ZK_HOME}/bin
[hadoop@bigdata13 app]$ source ~/.bashrc
- [hadoop@bigdata13 app]$ vim ~/.bashrc
-
4.删除相关cmd文件
- 路径:/home/hadoop/app/zookeeper/bin
[hadoop@bigdata13 bin]$ rm -rf *cmd
- 路径:/home/hadoop/app/zookeeper/bin
-
5.添加zookeeper文件夹
- 路径:/home/hadoop/data
[hadoop@bigdata13 data]$ mkdir zookeeper
- 路径:/home/hadoop/data
-
5.1添加server
- 路径:/home/hadoop/app/zookeeper/conf
[hadoop@bigdata13 conf]$ cp zoo_sample.cfg zoo.cfg
[hadoop@bigdata13 conf]$ vim zoo.cfg- 修改:dataDir=/home/hadoop/data/zookeeper/
- 添加
server.1=bigdata13:2888:3888 server.2=bigdata14:2888:3888 server.3=bigdata15:2888:3888
-
6.同步
- [hadoop@bigdata13 app]$ xsync apache-zookeeper-3.8.0-bin/
- [hadoop@bigdata13 app]$ xsync zookeeper
- [hadoop@bigdata13 app]$ xsync ~/.bashrc
-
7.指定zk机器号
- (两个路径都放置myid文件【内容相同 用cp命令】)
路径:/home/hadoop/app/zookeeper
路径:/home/hadoop/data/zookeeper- 在bigdata13机器:[hadoop@bigdata13 zookeeper]$ vim myid
内容为 1 - 在bigdata14机器:[hadoop@bigdata14 zookeeper]$ vim myid
内容为 2 - 在bigdata15机器:[hadoop@bigdata15 zookeeper]$ vim myid
内容为 3
- 在bigdata13机器:[hadoop@bigdata13 zookeeper]$ vim myid
- (两个路径都放置myid文件【内容相同 用cp命令】)
-
8.启动 【三台机器一起做】
- 命令:zkServer.sh start
- 启动后查看jps
- 启动后查看jps
-
群起脚本 (bigdata13机器)
- [hadoop@bigdata13 shell]$ vim zkServer.sh
case $1 in "start")for host in bigdata13 bigdata14 bigdata15doecho "====${host}==="ssh ${host} "/home/hadoop/app/zookeeper/bin/zkServer.sh start"done;;"stop")for host in bigdata13 bigdata14 bigdata15doecho "====${host}==="ssh ${host} "/home/hadoop/app/zookeeper/bin/zkServer.sh stop"done;;"status")for host in bigdata13 bigdata14 bigdata15doecho "====${host}==="ssh ${host} "/home/hadoop/app/zookeeper/bin/zkServer.sh status"done;;*)echo "Usage:$0 <start|stop|status>";; esac
赋予权限:[hadoop@bigdata13 shell]$ chmod u+x zkServer.sh
- [hadoop@bigdata13 shell]$ vim zkServer.sh
- 命令:zkServer.sh start
-
-
3.zk
-
1.zk是用来做什么的?
-
1.管理配置信息的 【数据量小】
-
2.watch(监控) 配置信息的变化
-
-
2.zk数据模型(一个 树形/层级式结构 linux差不多)
-
0.根节点 /
-
1.目录就是节点
-
2.节点保存数据的内容
-
3.zk里面所有的目录 都叫做节点 znode
-
-
-
4.节点
-
1.永久节点 (节点创建好之后 可以永久存在 )
可以存放子节点 -
2.临时节点 (节点创建好之后 有效时间过后节点就会消失 )
不能创建子节点 -
3.顺序节点
-
4.特点
-
1.zk 每个节点都有自己id 【不会重复的】
-
2.数据是存放在节点上
-
3.数据 不是很大的数据 仅仅存放比较小的数据
-
4.如果存放的数据发生变更 数据版本号也会发生变化
-
-
-
5.操作命令
-
1.登录节点
-
路径:/home/hadoop/app/zookeeper/bin
[hadoop@bigdata14 bin]$ zkCli.sh
-
-
2.查看节点
-
ls [-s] [-w] [-R] path
[zk: localhost:2181(CONNECTED) 2] ls /
-
-
3. 查看节点内容
-
[zk: localhost:2181(CONNECTED) 1] get /zookeeper
-
-
4. 获取当前节点状态 stat
-
[zk: localhost:2181(CONNECTED) 6] stat /dl2262
cZxid = 0x100000002 #节点的id ctime = Thu Dec 15 16:30:21 CST 2022 #创建时间 mZxid = 0x100000002 #修改id mtime = Thu Dec 15 16:30:21 CST 2022 #修改时间 pZxid = 0x100000002 #现在id cversion = 0 #版本 dataVersion = 0 #数据版本 aclVersion = 0 ephemeralOwner = 0x0 #是否是临时节点 0x0:永久节点 dataLength = 8 #节点内数据长度 numChildren = 0 #子节点个数
-
-
5.创建节点
-
1.永久节点
-
[zk: localhost:2181(CONNECTED) 3] create /dl2262 luozidai
默认创造永久节点
-
-
2.临时节点:
-
[zk: localhost:2181(CONNECTED) 7] create -e /dl2262-boy sanpao
-
-
3.顺序节点
-
[zk: localhost:2181(CONNECTED) 2] create -s /dl2262/luozidai
-s 参数默认会给ziyuan节点后面加一个自增的序列号
-
-
4.多级创建
-
zookeeper api: 多级
-
curator api: 多 级
-
-
-
6.修改数据内容 set
-
[zk: localhost:2181(CONNECTED) 10] set /dl2262 tiantian
-
加上版本号进行更改:[zk: localhost:2181(CONNECTED) 20] set -v 3 /dl2262 xiaoshuai
-v 后面的数字必须于本次版本号相同
-
-
7.删除节点
-
[zk: localhost:2181(CONNECTED) 28] delete /dl2262/luozidai0000000002
-
-
7.监听相关 zk
-
针对每个节点的操作 都有一个 监听器
当你的节点发生变化 就会触发 watch事件 -
[zk: localhost:2181(CONNECTED) 31] stat -w /dl2262
-
[zk: localhost:2181(CONNECTED) 33] get -w /dl2262
zk shell命令: 监听器只能触发一次
-
补充:zookeeper 对外提供服务的端口 对zk进行监控
-
stat
echo stat | nc bigdata32 2181 -
ruok
echo ruok | nc bigdata32 2181 -
dump
-
conf
-
-
-