栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 其他

Zookeeper学习笔记

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Zookeeper学习笔记

Zookeeper学习笔记

跟学尚硅谷Zookeeper,自我总结

第 1 章 Zookeeper 入门

Zookeeper 是一个开源的分布式的,为分布式框架提供协调服务的 Apache 项目。


数据结构

ZooKeeper 数据模型的结构与 Unix 文件系统很类似,整体上可以看作是一棵树,每个 节点称做一个 ZNode。每一个 ZNode 默认能够存储 1MB 的数据,每个 ZNode 都可以通过 其路径唯一标识。

应用场景

提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下线、软负载均衡等。





第 2 章 Zookeeper 本地安装

详见尚硅谷Zookeeper

配置参数解读 Zookeeper中的配置文件zoo.cfg中参数含义解读如下:

1)tickTime = 2000:通信心跳时间,Zookeeper服务器与客户端心跳时间,单位毫秒

2)initLimit = 10:LF初始通信时限——Leader和Follower初始连接时能容忍的最多心跳数(tickTime的数量)

3)syncLimit = 5:LF同步通信时限——Leader和Follower之间通信时间如果超过syncLimit * tickTime,Leader认为Follwer死 掉,从服务器列表中删除Follwer。

4)dataDir:保存Zookeeper中的数据 注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录。

5)clientPort = 2181:客户端连接端口,通常不做修改。

第 3 章 Zookeeper 集群操作 3.1 集群操作

集群安装详见尚硅谷Zookeeper

3.1.1 集群操作

(1)分别启动或关闭 Zookeeper

[henry@hadoop102 zookeeper-3.5.7]$ bin/zkServer.sh start / stop
[henry@hadoop103 zookeeper-3.5.7]$ bin/zkServer.sh start / stop
[henry@hadoop104 zookeeper-3.5.7]$ bin/zkServer.sh start / stop

(2)查看状态

[henry@hadoop102 zookeeper-3.5.7]# bin/zkServer.sh status 
JMX enabled by default Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg 
Mode: follower 
[henry@hadoop103 zookeeper-3.5.7]# bin/zkServer.sh status 
JMX enabled by default Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg 
Mode: leader 
[henry@hadoop104 zookeeper-3.4.5]# bin/zkServer.sh status 
JMX enabled by default Using config: /opt/module/zookeeper-3.5.7/bin/../conf/zoo.cfg 
Mode: follower
3.1.2 选举机制(面试重点)


3.2 客户端命令行操作(常用了解)

启动客户端

[henry@hadoop102 zookeeper-3.5.7]$ bin/zkCli.sh -server  hadoop102:2181

查看当前znode中所包含的内容

[zk: hadoop102:2181(CONNECTED) 0] ls / 
[zookeeper] 

查看当前节点详细数据

[zk: hadoop102:2181(CONNECTED) 5] ls -s / 
[zookeeper]cZxid = 0x0 ctime = Thu Jan 01 08:00:00 CST 1970 mZxid = 0x0 mtime = Thu Jan 01 08:00:00 CST 1970 pZxid = 0x0 cversion = -1 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x0 dataLength = 0 numChildren = 1

节点类型(持久/短暂/有序号/无序号)

创建4种节点

#(永久节点 + 不带序号)
[zk: localhost:2181(CONNECTED) 3] create /sanguo "diaochan"
Created /sanguo
#(永久节点 + 带序号)
[zk: localhost:2181(CONNECTED) 2] create -s /sanguo/weiguo/zhangliao "zhangliao"
Created /sanguo/weiguo/zhangliao0000000000
#(短暂节点 + 不带序号)
[zk: localhost:2181(CONNECTED) 7] create -e /sanguo/wuguo "zhouyu"
Created /sanguo/wuguo
#(短暂节点 + 带序号)
[zk: localhost:2181(CONNECTED) 2] create -e -s /sanguo/wuguo "zhouyu"
Created /sanguo/wuguo0000000001

获得节点的值

[zk: localhost:2181(CONNECTED) 5] get -s /sanguo
diaochan
...

查看节点

[zk: localhost:2181(CONNECTED) 3] ls /sanguo 
[wuguo, wuguo0000000001, shuguo]
#查看节点状态
[zk: localhost:2181(CONNECTED) 17] stat /sanguo
cZxid = 0x100000003
...

修改节点数据值

[zk: localhost:2181(CONNECTED) 6] set /sanguo/weiguo "simayi"

注册监听/sanguo 节点数据变化

[zk: localhost:2181(CONNECTED) 26] get -w /sanguo 

删除节点

[zk: localhost:2181(CONNECTED) 4] delete /sanguo/jin
#递归删除节点
[zk: localhost:2181(CONNECTED) 15] deleteall /sanguo/shuguo

监听器原理

3.3 客户端向服务端写数据流程(了解)


第 4 章 服务器动态上下线监听案例

详见尚硅谷Zookeeper

第 5 章 ZooKeeper 分布式锁案例

详见尚硅谷Zookeeper

5.1 原生 Zookeeper 实现分布式锁案例 5.2 Curator 框架实现分布式锁案例 第 6 章 企业面试真题(面试重点) 6.1 选举机制

详见3.1.2 选举机制(面试重点)

半数机制,超过半数的投票通过,即通过。

(1)第一次启动选举规则: 投票过半数时,服务器 id 大的胜出

(2)第二次启动选举规则: ①EPOCH 大的直接胜出 ②EPOCH 相同,事务 id 大的胜出 ③事务 id 相同,服务器 id 大的胜出

6.2 生产集群安装多少 zk 合适?

安装奇数台。

生产经验: ⚫ 10 台服务器:3 台 zk; ⚫ 20 台服务器:5 台 zk; ⚫ 100 台服务器:11 台 zk; ⚫ 200 台服务器:11 台

zk 服务器台数多:好处,提高可靠性;坏处:提高通信延时

6.3 常用命令

详见3.2 客户端命令行操作(常用了解)

ls、get、create、delete

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/279539.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号