第66次(Zookeeper)
学习主题:Zookeeper
学习目标:掌握Zookeeper的存储结构,Zookeeper的作用
掌握单机安装Zookeeper,集群部署Zookeeper
一、Zookeeper介绍
1. 什么是Zookeeper?
Zookeeper: 是一个分布式的、开源的程序协调服务,是 hadoop 项目下的一个子项目。
他提供的主要功 能包括:配置管理、名字服务、分布式锁、集群管理。
2. Zookeeper的作用是什么?
1 配置管理
2 名字服务
3 分布式锁
4 集群管理
二、Zookeeper存储结构
1. 什么是Znode?
在 Zookeeper 中,znode 是一个跟 Unix 文件系统路径相似的节点,可以往这个节点存储或获取数据。
2. Znode节点类型有哪些?
PERSISTENT 持久化节点
PERSISTENT_SEQUENTIAL 持久顺序节点
EPHEMERAL 临时节点
EPHEMERAL_SEQUENTIAL 临时自动编号节点
三、Zookeeper安装-单机版
1. 如何安装Zookeeper单机版?
将zookeeper压缩包上传到Linux中,使用tar命令进行解压,
Zookeeper 在启动时默认的去 conf 目录下查找一个名称为 zoo.cfg 的配置文件。
在 zookeeper 应用目录中有子目录 conf。其中有配置文件模板:zoo_sample.cfg,
将zoo_sample.cfg文件重命名为zoo.cfg,并修改配置文件zoo.cfg,设置数据缓存路径,
然后到bin目录下使用:./zkServer.sh start启动zookeeper。
四、Zookeeper集群原理
1. Zookeeper集群中的角色主要有哪三类?
2. 请阐述Zookeeper的集群原理是什么?
最终一致性:client 不论连接到哪个 Server,展示给它都是同一个视图,这是 zookeeper 最重要的性能。
可靠性:具有简单、健壮、良好的性能,如果消息 m 被到一台服务器接受,那么它将被所有的服务器接受。
实时性:Zookeeper 保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。
但由于网络延时等原因,Zookeeper 不能保证两个客户端能同时得到刚更新的数据,
如果需要最新数据,应该在读数据之前调用 sync()接口。
等待无关(wait-free):慢的或者失效的 client 不得干预快速的client 的请求,使得每个client都能有效的等待。
原子性:更新只能成功或者失败,没有中间状态。
顺序性:包括全局有序和偏序两种:
全局有序是指如果在一台服务器上消息 a 在消息 b 前发布,则在所有 Server 上消息 a 都将在消息 b 前被发布;
偏序是指如果一个消息 b 在消 息 a 后被同一个发送者发布,a 必将排在 b 前面。
五、Zookeeper创建集群
1. 如何搭建Zookeeper集群?
将三个zookeeper放到一个集群目录中,在三个zookeeper应用目录中创建data目录并在data目录中创建myid文件,
为应用提供唯一标识,用于缓存应用运行数据,将conf目录中的zoo_sample.cfg重命名为zoo.cfg,
修改配置文件,设置服务、投票、选举端口。
六、Zookeeper常见命令
1. 如何启动Zookeeper?
. /zkServer.sh start
2. 如何关闭Zookeeper?
. /zkServer.sh stop
3. 如何查看Zookeeper状态?
. /zkServer.sh status
4. 如何使用Zookeeper客户链接Zookeeper?
./zkCli.sh -server IP:端口号
5. Connect命令的作用是什么?
七、连接其他zookeeper应用
1. Ls命令的作用是什么?
列表路径下的资源,用于查看zookeeper中的节点
2. Create命令的作用是什么?
创建节点
3. Get命令的作用是什么?
查看指定节点的数据