尚硅谷大数据技术之 Zookeeper
———————————————————————————
——
尚硅谷大数据技术之 Zookeeper
(作者:尚硅谷大数据研发部)
版本:V2.0
第 1 章 Zookeeper 入门
1.1 概述
Zookeeper 是一个开源的分布式的,为分布式应用提供协调服务的 Apache 项目。
更多 Java –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
尚硅谷大数据技术之 Zookeeper
———————————————————————————
——
1.2 特点
1.3 数据结构
1.4 应用场景
提供的服务包括:统一命名服务、统一配置管理、统一集群管理、服务器节点动态上下
线、软负载均衡等。
更多 Java –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
尚硅谷大数据技术之 Zookeeper
———————————————————————————
——
更多 Java –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
尚硅谷大数据技术之 Zookeeper
———————————————————————————
——
更多 Java –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
尚硅谷大数据技术之 Zookeeper
———————————————————————————
——
1.5 下载地址
1.官网首页:
https://zookeeper.apache.org/
2.下载截图,如图 5-5,5-6,5-7 所示
图 5-5 Zookeeper 下载(一)
更多 Java –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
尚硅谷大数据技术之 Zookeeper
———————————————————————————
——
图 5-6 Zookeeper 下载(二)
图 5-7 Zookeeper 下载(三)
第 2 章 Zookeeper 安装
2.1 本地模式安装部署
1.安装前准备
(1)安装 Jdk
(2)拷贝 Zookeeper 安装包到 Linux 系统下
(3)解压到指定目录
[atguigu@hadoop102 software]$ tar -zxvf zookeeper-3.4.10.tar.gz
-C /opt/module/
2.配置修改
(1)将/opt/module/zookeeper-3.4.10/conf 这个路径下的 zoo_sample.cfg 修改为 zoo.cfg;
更多 Java –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
尚硅谷大数据技术之 Zookeeper
———————————————————————————
——
[atguigu@hadoop102 conf]$ mv zoo_sample.cfg zoo.cfg
(2)打开 zoo.cfg 文件,修改 dataDir 路径:
[atguigu@hadoop102 zookeeper-3.4.10]$ vim zoo.cfg
修改如下内容:
dataDir=/opt/module/zookeeper-3.4.10/zkData
(3)在/opt/module/zookeeper-3.4.10/这个目录上创建 zkData 文件夹
[atguigu@hadoop102 zookeeper-3.4.10]$ mkdir zkData
3.操作 Zookeeper
(1)启动 Zookeeper
[atguigu@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh start
(2)查看进程是否启动
[atguigu@hadoop102 zookeeper-3.4.10]$ jps
4020 Jps
4001 QuorumPeerMain
(3)查看状态:
[atguigu@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /opt/module/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: standalone
(4)启动客户端:
[atguigu@hadoop102 zookeeper-3.4.10]$ bin/zkCli.sh
(5)退出客户端:
[zk: localhost:2181(CONNECTED) 0] quit
(6)停止 Zookeeper
[atguigu@hadoop102 zookeeper-3.4.10]$ bin/zkServer.sh stop
2.2 配置参数解读
Zookeeper中的配置文件zoo.cfg中参数含义解读如下:
1.tickTime =2000:通信心跳数,Zookeeper 服务器与客户端心跳时间,单位毫
秒
Zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,
也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。
它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的最小超
时时间是2*tickTime)
2.initLimit =10:LF 初始通信时限
集群中的Follower跟随者服务器与Leader领导者服务器之间初始连接时能容忍的最多心
跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。
更多 Java –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网
尚硅谷大数据技术之 Zookeeper
———————————————————————————
——
3.syncLimit =5:LF 同步通信时限
集群中Leader与Follower之间的最大响应时间单位,假如响应超过syncLimit * tickTime,
Leader认为Follwer死掉,从服务器列表中删除Follwer。
4.dataDir:数据文件目录+数据持久化路径
主要用于保存 Zookeeper 中的数据。
5.clientPort =2181:客户端连接端口
监听客户端连接的端口。
第 3 章 Zookeeper 内部原理
3.1 选举机制(面试重点)
1)半数机制:集群中半数以上机器存活,集群可用。所以 Zookeeper 适合安装奇数台
服务器。
2)Zookeeper 虽然在配置文件中并没有指定 Master 和 Slave。但是,Zookeeper 工作时,
是有一个节点为 Leader,其他则为 Follower,Leader 是通过内部的选举机制临时产生的。
3)以一个简单的例子来说明整个选举的过程。
假设有五台服务器组成的 Zookeeper 集群,它们的 id 从 1-5,同时它们都是最新启动的,
也就是没有历史数据,在存放数据量这一点上,都是一样的。假设这些服务器依序启动,来
看看会发生什么,如图 5-8 所示。
图 5-8 Zookeeper 的选举机制
(1)服务器 1 启动,此时只有它一台服务器启动了,它发出去的报文没有任何响应,
所以它的选举状态一直是 LOOKING 状态。
(2)服务器 2 启动,它与最开始启动的服务器 1 进行通信,互相交换自己的选举结果,
由于两者都没有历史数据,所以 id 值较大的服务器 2 胜出,但是由于没有达到超过半数以
更多 Java –大数据 –前端 –python 人工智能资料下载,可百度访问:尚硅谷官网