Zookeeper的概述和安装

Zookeeper是一个开源的分布式协调服务,为Hadoop和Hbase等提供一致性服务,包括配置维护、域名服务、分布式同步等。它采用一个领导者和多个跟随者的集群模式,确保在半数以上节点存活时仍能正常服务。Zookeeper的数据结构类似Unix文件系统,提供统一配置管理和集群管理等功能。在安装Zookeeper时,需要解压配置文件,修改zoo.cfg,设置dataDir和clientPort等参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Zookeeper概述

Zookkeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目,Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护,域名服务,分布式同步,组服务等。

特点

  • Zookeeper:一个领导者(leader),多个跟随者(follower)组成的集群。
  • Leader : 负责进行投票投票的发起和决议,更新系统状态。
  • Follower:用于接收客户请求并向客户端返回结果,在选举Leader过程中参与投票。
  • 集群奇数台服务器只要有半数以上节点存活,Zookeeper集群就能正常服务。
  • 全局数据一致:每个server保存一份相同的数据副本,client无论连接到那个server,数据都是一致的。
  • 更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次进行。
  • 数据更新原子性,一次更新要么成功要么失败。
  • 实时性,在一定时间范围内,client能读到最新数据。

数据结构

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

应用场景

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

统一配置管理

  • 一,分布式环境下,配置文件同步和管理是一个常见问题。
  • 1,一个集群中,所有节点的配置信息是一致的,比如Hadoop集群。
  • 2,对配置文件修改后,希望能快速同步到各个节点上。
  • 二, 配置管理可交由ZK实现。
  • 1,可配置信息写入ZK上的一个ZNode。
  • 各个节点监听这个ZNode。
  • 一旦ZNode上的数据被修改,ZK将通知各个节点。3

统一集群管理

  • 集群管理结构图如下所示。
  • 一,分布式环境中,实时掌握每个节点的动态是必要的。
  • 1,可根据节点实时做出一些调整。
  • 可交由ZK实现
  • 1,可将节点信息写入ZK上的一个ZNode。
  • 2,监听这个ZNode可获取它的实时状态变化。
  • 典型应用
  • 1,HBase中Master状态监听与选举。
  • 4

服务器节点动态上下线

5

软负载均衡

6

下载地址

官方网站
官网
百度云链接
提取码whzq

安装Zookeeper

-[ ] 上传zookeeper到Linux系统下。

可通过WinSCP传到指定目录。

1
WinSCP中直接拖到指定文件夹,很方便。
百度云链接
提取码ro3j

  • 第一步:解压压缩包。
  • 在Linux中通过tar -zxvf zookeeper - 3.4.10.tar.gz -C
    3
  • 第二步进入conf修改zoo_sample.cfg 为 zoo.cfg
  • 1

配置zoo.cfg

  • 解读zoo.cfg文件中参数的含义
  • 1,tick Time=2000:通信心跳数,Zookeeper服务器心跳时间,单位毫秒。
  • Zookeeper使用的基本时间服务器之间或客户端和服务器之间维持心跳间隔,也就是没个tick TIme时间就会发送一个心跳,时间单位为毫秒。
  • 它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的超时时间是2*tickTime)
  • initLimit=10:Leader和Follower初始通信时限。
  • 集群中Follower跟随者服务器和Leader领导者服务器之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeepe服务器连接到Leader的时限。
  • 投票选举Leader的初始化时间。
  • Follower在启动过程中,会从Leader同步所有最新数据,然后确定能够对外服务的起始状态。
  • Leader允许Follower在initLimit时间内完成这个工作。
  • syncLimit=5:Leader和Follower同步通信时限。
  • 集群中Leader和Follower之间最大响应时间单位,假如响应超时syncLimit*tickTime,Leader认为Follower死掉,从服务器列表删除Follower。
  • 在运行过程中,Leader负责ZK集群中所有机器进行通信,列如通过一些心跳检测机制,来检查机器的存活状态。
  • 如果Leader发出心跳包在syncLimit之后,还没有从Follower那收到响应,那么就认为这个Follower不在线了。
  • dataDir:数据文件目录 + 数据持久化路径
  • 保存内存数据库快照信息位置,如果没有其他说明,更新的事务日志也存到数据库
  • clientPort=2181:客户端连接接口。监听客户端的端口

修改配置

进入zoo.cfg下修改dataDir

  • 2
  • 进入/etc/profile配置环境变量
  • 3
  • 记得source
  • 1
  • 启动Zookeeper
  • 1
  • 但是启动失败也会显示这些所以需要看一下Zookeeper的状态1
  • Mode:standlone 是单节点 临时使用
  • 使用zkCli.sh进入客户端
  • 当出现这个画面时你的Zookeeper就初步搭建成功了。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值