首页 > 其他分享 >Zookeeper入门

Zookeeper入门

时间:2022-11-18 16:35:12浏览次数:54  
标签:zookeeper 入门 cfg Zookeeper zoo 3.5 节点

一、Zookeeper简介及安装

1、Zookeeper简介

ZooKeeper 是 Apache 软件基金会的一个软件项目,它为大型分布式计算提供开源的分布式配置服务、同步服务和命名注册。

ZooKeeper 的架构通过冗余服务实现高可用性。

Zookeeper 的设计目标是将那些复杂且容易出错的分布式一致性服务封装起来,构成一个高效可靠的原语集,并以一系列简单易用的接口提供给用户使用。

一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它实现诸如数据发布/订阅、负载均衡、命名服务、分布式协调/通知、集群管理、Master 选举、分布式锁和分布式队列等功能。

2、数据结构

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

image

3、Zookeeper安装

zookeeper 下载地址为: https://zookeeper.apache.org/releases.html

image

以3.5.7为例,下载安装

3.1 安装jdk

Linux中安装JDK

3.2 上传文件解压

image

#解压到/opt/module/目录中
tar -zxvf apache-zookeeper-3.5.7- bin.tar.gz -C /opt/module/

#修改名称
mv apache-zookeeper-3.5.7 -bin/ zookeeper-3.5.7
3.3 修改配置
#将/opt/module/zookeeper-3.5.7/conf 这个路径下的 zoo_sample.cfg 修改为zoo.cfg
mv zoo_sample.cfg zoo.cfg

#打开zoo.cfg 文件,修改 dataDir 路径
vim zoo.cfg

#创建zkData目录
mkdir zkData
#zoo.cfg文件中修改位置
dataDir=/opt/module/zookeeper-3.5.7/zkData
3.4 测试
cd /opt/module/zookeeper-3.5.7
  • 启动服务
bin/zkServer.sh start
  • 查看状态
bin/zkServer.sh status
  • 启动客户端
zookeeper-3.5.7]$ bin/zkCli.sh
  • 退出客户端
    输入quit命令即可

  • 停止服务

bin/zkServer.sh stop

二、客户端常用命令

基本语法 功能描述
help 显示所有操作命令
ls path 使用 ls 命令来查看当前 znode 的子节点 [可监听]
-w 监听子节点变化
-s 附加次级信息
create 普通创建
-s 含有序列
-e 临时(重启或者超时消失)
get path 获得节点的值 [可监听]
-w 监听节点内容变化
-s 附加次级信息
set 设置节点的具体值
stat 查看节点状态
delete 删除节点
deleteall 递归删除节点

三、Zookeeper选举机制

okeeper 的 leader 选举存在两个阶段,一个是服务器启动时 leader 选举,另一个是运行过程中 leader 服务器宕机。在分析选举原理前,先介绍几个重要的参数。

  • 服务器 ID(myid):编号越大在选举算法中权重越大

  • 事务 ID(zxid):值越大说明数据越新,权重越大

  • 逻辑时钟(epoch-logicalclock):同一轮投票过程中的逻辑时钟值是相同的,每投完一次值会增加

  • 选举状态:
    LOOKING: 竞选状态
    FOLLOWING: 随从状态,同步 leader 状态,参与投票
    OBSERVING: 观察状态,同步 leader 状态,不参与投票
    LEADING: 领导者状态

  • Zookeeper第一次启动时选举
    image

  • Zookeeper运行过程中 loader 服务器当季时选举
    image

标签:zookeeper,入门,cfg,Zookeeper,zoo,3.5,节点
From: https://www.cnblogs.com/Snowclod/p/16903672.html

相关文章

  • golang分层测试之http接口测试入门教程
    前言前几话主要讲解关于使用golang进行单元测试,在单元测试的上一层就是接口测试,本节主要讲使用golang进行接口测试,其中主要以http协议的接口测试来讲解golang中的http请......
  • Zookeeper客户端命令以及API操作
    zookeeper实战一、zookeeper客户端命令1、zookeeper命令语法命令基本语法功能描述help显示所有操作命令lspath使用ls命令来查看当前znode的子节点【可监......
  • python-飞机大战.pygame快速入门-项目实战
    目标项目准备使用​​pygame​​创建图形窗口理解图像并实现图像绘制理解游戏循环和游戏时钟理解精灵和精灵组项目准备新建飞机大战项目新建一个​​hm_01_pyg......
  • 【必看】网络安全入门必刷的靶场合集!
    在信息安全领域,靶场是非常重要的存在,为安全从业人员提供了很大的帮助。当我们初学网络安全时,很多小白也会刷靶场,那么网络安全入门必刷的靶场有哪些?本文为大家介绍一下......
  • 入门学python的朋友注意了,这17个注意事项要记住哦
    Python这门语言虽然不会很难,但是毕竟是一门编程语言,想要学好学会python,还是要需要注意这17个注意事项。这是我自己在学习python的过程中总结出来的,希望能让你在学习过程中......
  • Stable Diffusion的入门介绍和使用教程
    StableDiffusion是一个文本到图像的潜在扩散模型,由CompVis、StabilityAI和LAION的研究人员和工程师创建。它使用来自LAION-5B数据库子集的512x512图像进行训练。使用这个......
  • Python算法题库(入门)
    1. 字符串最后一个单词长度str=input("输入一串字符串:")strList=str.split('')[-1]print(len(strList)) 2. 计算某字符出现的次数str=input("请输入:").......
  • Linux系统上安装Zookeeper
    Zookeeper的安装:第一步:安装jdk(必须先安装jdk,否则启动不成功)第二步:解压缩zookeeper压缩包第三步:将conf文件夹下zoo_sample.cfg复制一份,改名为zoo.cfg第四步:修改配置dataDir......
  • 如何在erp实施上尽快入门?
    要想在ERP实施上尽快入门,你得知道什么是ERP,ERP的核心是什么,它最具价值的东西都是什么,先学会这些才行啊! ERP是EnterpriseResourcePlanning,即企业资源计划,重心在于提......
  • XML概述、快速入门
    XML概述概念:Extensible  Markup  Language 可扩展标记语言可扩展:标签都是自定义的。功能:存储数据配置文件在网络中传输xml与h......