📌本文目录 大数据技术之—— Zookeeper的安装 一、本地模式安装部署 1.1、安装前准备 1.2、修改配置 1.3、操作zookeeper 1.4、配置参数解读 二、zookeeper集群安装 1、集群规划 2、解压安装 3、将zookeeper·分发到其他两台机器上 4、配置zoo.cfg文件 5、同步zoo.cfg文件 6、集群操作 7、zookeeper集群启动脚本 大数据技术之—— Zookeeper的安装 一、本地模式安装部署 1.1、安装前准备 1、安装jdk 确保已将安装好了jdk
2、拷贝zookeeper安装包到linux系统
3、解压到指定目录
解压到指定的目录
tar -zxvf apache-zookeeper-3.5.7- bin.tar.gz -C /opt/module/
修改名称(由于名称太长,可不修改直接下一步):
mv apache-zookeeper-3.5.7 -bin/ zookeeper-3.5.7
1.2、修改配置 1、将/opt/module/zookeeper-3.5.7/conf 这个路径下的 zoo_sample.cfg 修改为zoo.cfg
mv zoo_sample.cfg zoo.cfg
2、打开 zoo.cfg 文件,修改 dataDir 路径:
vim zoo.cfg
修改如下内容:
dataDir=/opt/module/zookeeper-3.5.7/zkData 1
3、在/opt/module/zookeeper-3.5.7/这个目录上创建 zkData 文件夹
mkdir zkData
1.3、操作zookeeper (1)启动 Zookeeper
bin/zkServer.sh start
(2)查看进程是否启动
jps
(3)查看状态
bin/zkServer.sh status
(4)启动客户端
bin/zkCli.sh
(5)退出客户端:
quit
(6)停止 Zookeeper
bin/zkServer.sh stop
1.4、配置参数解读 Zookeeper中的配置文件zoo.cfg中参数含义解读如下:
1、tickTime = 2000:通信心跳时间,Zookeeper服务器与客户端心跳时间, www.iimedia.cn/tag/%E9%95%… www.iimedia.cn/tag/%E9%95%… www.iimedia.cn/tag/%E9%95%… www.iimedia.cn/tag/%E9%95%… www.iimedia.cn/tag/%E9%95%… www.iimedia.cn/tag/%E9%95%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E6%B5%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%…
2、initLimit = 10:LF初始通信时限
3、syncLimit = 5:LF同步通信时限
4、dataDir:保存Zookeeper中的数据
注意:默认的tmp目录,容易被Linux系统定期删除,所以一般不用默认的tmp目录
5、clientPort = 2181:客户端连接端口,通常不做修改。
二、zookeeper集群安装 1、集群规划 在hadoop02、hadoop03 hadoop04上部署zookeeper
2、解压安装 因为已经在hadoop02上安装过zookeeper了
在hadoop02上的zkData目录下创建一个myid的文件
vi myid
在文件中添加与 server 对应的编号(注意:上下不要有空行,左右不要有空格)
3、将zookeeper·分发到其他两台机器上 并分别在 hadoop03、hadoop04 上修改 myid 文件中内容为 3、4
xsync zookepper-3.5.7
4、配置zoo.cfg文件 【1】重命名/opt/module/zookeeper-3.5.7/conf 这个目录下的 zoo_sample.cfg 为 zoo.cfg
【2】打开 zoo.cfg 文件
【3】配置
#修改数据存储路径配置
dataDir=/opt/module/zookeeper-3.5.7/zkData
#增加如下配置
#######################cluster##########################
server.2=hadoop02:2888:3888
server.3=hadoop03:2888:3888
server.4=hadoop04:2888:3888
【4】配置参数解读
server.A=B:C:D
A 是一个数字,表示这个是第几号服务器;
集群模式下配置一个文件 myid,这个文件在 dataDir 目录下,这个文件里面有一个数据 就是 A 的值,Zookeeper 启动时读取此文件,拿到里面的数据与 zoo.cfg 里面的配置信息比
较从而判断到底是哪个 server。
B 是这个服务器的地址;
C 是这个服务器 Follower 与集群中的 Leader 服务器交换信息的端口;
D 是万一集群中的 Leader 服务器挂了,需要一个端口来重新进行选举,选出一个新的
Leader,而这个端口就是用来执行选举时服务器相互通信的端口。
5、同步zoo.cfg文件 xsync zoo.cfg
6、集群操作 分别启动zookeeper
[zhou@hadoop02 zookeeper-3.5.7] bin/zkServer.sh start [zhou@hadoop04 zookeeper-3.5.7]$ bin/zkServer.sh start 1 2 3 查看状态
7、zookeeper集群启动脚本 1、在 hadoop02 的/home/zhou/bin 目录下创建脚本
vim zk.sh
#!/bin/bash case 1 in "start"){ for i in hadoop02 hadoop03 hadoop04 do echo ---------- zookeeper i 启动 ------------ ssh i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh start" done };; "stop"){ for i in hadoop02 hadoop03 hadoop04 do echo ---------- zookeeper i 停止 ------------ ssh i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop" done };; "status"){ for i in hadoop02 hadoop03 hadoop04 do echo ---------- zookeeper i 状态 ------------ ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status" done };; esac
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 增加脚本的执行权限 chmode u+x zk.sh
分发 xsync zk.sh
测试 zk.sh stop 停止zookeeper集群 zk.sh start 启动zookeeper集群 zk.sh status 查看zookeeper集群状态 www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E5%BE%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… www.iimedia.cn/tag/%E6%B4%… is ZooKeeper? ZooKeeper官网 ZooKeeper 是一种面向分布式应用程序的分布式开源协调服务,目前属于 Apache 维护。现分布式数据一致性解决方案中可以基于 ZooKeeper 实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。
ZooKeeper特点:
无单点: 一个(Leader),多个(Follower)的集群,只要有半数以上节点就能存活整个集群,集群安装适合奇数台服务器。 顺序一致性: 从同一客户端发起的事务请求,最终将会严格地按照顺序被应用到 ZooKeeper 中去。 原子性: 所有事务请求的处理结果即为全部应用成功,否则全部应用失败,无部分结果。 单个系统镜像 : 无论客户端连到哪一个 ZooKeeper 服务器上,其看到的服务端数据模型都是一致的(无状态)。 实时性: 最新事务被成功应用,ZooKeeper 可以保证客户端立即读取到这个事务变更后最新状态的数据。 可靠性: 一旦一次更改请求被应用,更改的结果就会被持久化,直到被下一次更改覆盖。 数据模型和分层命名空间: ZooKeeper 提供的命名空间与 Unix 文件系统的命名空间非常相似。名称是由斜杠( / )分隔的路径元素序列。每个节点称做一个 ZNode ,ZooKeeper 命名空间中的每个节点(ZNode)都由一个唯一路径标识。
1、ZooKeeper设计目标 ZooKeeper 简单数据模型:
ZooKeeper 通过树形结构进行存储数据,它由在 ZooKeeper 的说法中称为 ZNodes 数据节点组成,类似于标准文件系统与文件。 与专为存储而设计的典型文件系统不同,ZooKeeper 数据保存在内存中,这意味着 ZooKeeper 可以实现高吞吐量和低延迟数字。 可配置 Cluster
为保证高可用,ZooKeeper都会以奇数出现在集群中保证高可用进行复制。
顺序访问
ZooKeeper 会在每次更新中标记一个数字,该数字反映了所有 ZooKeeper 事务的顺序。后续操作可以使用该顺序来实现。 高性能更快速
ZooKeeper 将数据全量存储在内存中以保持高性能,并通过服务集群来实现高可用。 由于 ZooKeeper 的所有更新和删除都是基于事务的,所以其在读多写少的应用场景中有着很高的性能表现。 2、ZooKeeper核心概念 Session 会话 Session 指的是 ZooKeeper 服务器与客户端会话。当客户端(Client) 通过 TCP 长连接 连接到 ZooKeeper 服务器时,Session 开始建立连接并通过心跳检测(tickTime) 与服务器保持有效会话。通过此连接,客户端(Client) 也可以向 ZooKeeper 服务端发送请求并接受响应,同时也可以接收到 Watch 事件的通知。
当由于服务器压力太大、网络故障或是客户端(Client) 主动断开连接等各种原因导致客户端连接断开时,只要在会话超时(SessionTimeout)规定的时间内能够重新连接上集群中任意一台服务器,那么之前创建的会话仍然有效。
ZNode 数据节点 在 Zookeeper 中,数据模型由数据节点(ZNode) 组成树形结构,ZNode 是一个跟 Unix 文件系统相似的节点,可以往这个节点存储或获取数据。每一个 ZNode 默认能够存储 1MB 的数据。
ZNode节点类型:
持久节点:客户端与 ZooKeeper 断开连接后,该节点依旧存在。 持久循序编号节点:客户端与 ZooKeeper 断开连接后,该节点依旧存在,只是 ZooKeeper 给该节点名称进行顺序编号。 临时节点:客户端与 ZooKeeper 断开连接后,该节点被删除。 临时循序编号节点:客户端与 ZooKeeper 断开连接后,该节点被删除,只是 ZooKeeper 给该节点名称进行顺序编号。 Watcher Watcher 就是 ZooKeeper 中常用的事件监听器,ZooKeeper 允许用户注册一些 Watcher,并且在一些事件特定触发时,ZooKeeper 会将通知发给客户端。该机制是 ZooKeeper 实现分布式协调服务的重要特性。
ACL Zookeeper采用ACL(AccessControlLists)策略来进行权限控制,类似于 Unix 文件系统的权限控制。 Zookeeper 定义的5种权限。
命令 作用 create 创建子节点权限 read 查看节点数据和子节点列表的权限 write 更新节点的权限 delete 删除节点的权限 admin 设置节点ACL的权限 3、ZooKeeper应用场景 统一命名服务: 在分布式环境下,经常需要对应用/服务进行统一命名,便于识别。 统一配置管理: 将信息写入 ZooKeeper,快速同步各个节点配置文件。 统一集群管理: 在分布式环境中,实时掌握每个节点的状态,ZooKeeper 可以实现实时监控节点状态变化。 服务器动态上下线: 客户端能实时洞察到服务器上下线的变化,进行事件通知。 软负载均衡: 在 ZooKeeper 中记录每台服务器的访问数,让访问数最少的服务器去处理最新的客户端请求。 4、Paxos算法与Zab协议