zookeeper入门及进阶
发布日期:2021-05-18 08:19:02 浏览次数:16 分类:精选文章

本文共 1472 字,大约阅读时间需要 4 分钟。

ZK入门指南

1. 什么是ZK?

ZK(Zookeeper)是一个分布式的协调服务框架,用于管理和协调分布式系统中的节点。它是一种适用于大规模网络环境的高效解决方案。

2. ZK的核心特点

  • 分布式集群:一个领导节点(leader),多个从节点(follower)。
  • 高可用性:只要半数以上节点存活,系统就能正常服务。
  • 数据一致性:所有节点保存的数据完全一致。
  • 可靠性:每次数据更新要么成功完成,要么失败放弃。

3. 数据模型

ZK采用树状数据模型,支持直键、持久化和临时节点。其核心特点是支持动态结构变化,并能通过脚本自动处理节点状态变化。

4. 安装步骤

  • 下载压缩包:请从ZK官方网站获取最新版本。
  • 解压并改名:解压并将文件名改为“zookeeper”。
  • 配置环境变量:编辑/etc/profile,添加以下内容。
    export ZOOKEEPER_HOME=/usr/local/zookeeper
    export PATH=$ZOOKEEPER_HOME/bin:$PATH
  • 生效配置:重新加载当前会话。

5. 集群搭建

  • 机器准备:至少需要3台机器。
  • 配置zoo.cfg:安装完成后,将zoo_sample.cfg复制为zoo.cfg,并修改相关参数。
    tickTime=2000
    initLimit=10
    syncLimit=5
    dataDir=/usr/local/zookeeper/zkData
    clientPort=2181
    server.1=mypc01:2888:3888
    server.2=mypc02:2888:3888
    server.3=mypc03:2888:3888
  • 创建myid文件:在$ZOOKEEPER_HOME/zkData目录下,创建myid文件,内容为每台机器的唯一ID(如1、2、3)。
    touch $ZOOKEEPER_HOME/zkData/myid
  • 传播配置:可以使用scp命令将配置文件和myid文件复制到其他机器上。

6. 启动与停止

  • 查看帮助信息
    /usr/local/zookeeper/bin/zkServer.sh --help
  • 启动集群:在所有节点上运行:
    zkServer.sh start
  • 查看状态
    zkServer.sh status
  • 停止集群
    zkServer.sh stop
  • 重新启动
    zkServer.sh restart

7. 选举机制

ZK通过投票机制选举出领导节点(leader)。主要依据以下条件:

  • Epoch:表示投票次数,编号递增。
  • zxid:每次节点状态变化生成唯一时间戳,zxid越大越晚。
  • ServerID:节点ID,需在myid文件中指定。

8. ZK客户端操作

使用zkCli.sh进行操作:

# 查看节点内容
zkCli.sh ls /路径
# 增加监听
zkCli.sh ls /watch
# 退出客户端
zkCli.sh quit

9. 监听节点变化

  • 挂载监听
    # 监听节点数变化
    cd /zmwatch && echo "/watch" | zkCli.sh ls
  • 内容变化
    get /newpath watch
  • 自动化处理:可以通过脚本自动处理各类型事件。

10. ZK应用场景

  • 与HBase结合:用于管理HBase的不稳定表元数据,记录存储位置信息和备用节点。
  • 高可用性数据存储:用于分布式系统中的协调服务,确保数据一致性和高可用性。

通过以上配置和使用ZK,您可以轻松建立一个可靠的分布式协调集群,适用于多种高并发场景。

上一篇:Hive入门及安装
下一篇:MRAppMaster类

发表评论

最新留言

很好
[***.229.124.182]2025年04月29日 19时27分31秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

2025版最新Nessus 工具介绍与使用教程,零基础入门到精通,收藏这一篇就够了 2023-01-25
2025版最新wireshark怎么抓包?Wireshark入门指南,零基础入门到精通,收藏这篇就够了 2023-01-25
2025版最新一文彻底搞懂大模型 - Agent(非常详细)零基础入门到精通,收藏这篇就够了 2023-01-25
2025版最新关于HW护网行动的一些知识,零基础入门到精通,收藏这篇就够了 2023-01-25
(建议收藏)2024最新 URL Scheme大全APP跳转界面地址更新中 ios快捷指令快捷方式链接跳转微信小程序必备autojs可用免root (可定制开发和提取URL Scheme 参数提取) 2023-01-25
2025版最新大模型学习路线,零基础入门到精通,收藏这篇就够了 2023-01-25
2025版最新大模型开发流程(非常详细)零基础入门到精通,收藏这一篇就够了 2023-01-25
(干货)数据分析案例--以上海二手房为例 2023-01-25
(大部分安卓手机通用)一加OnePlus Ace3扬声器优化教程 外放直接媲美苹果 2023-01-25
2025版最新大模型微调方法(非常详细)零基础入门到精通,收藏这篇就够了 2023-01-25
2025版最新大模型算法岗位薪资指南,零基础入门到精通,收藏这一篇就够了 2023-01-25
2025版最新大语言模型的指令微调,零基础入门到精通,收藏这篇就够了 2023-01-25
2025版最新小白学习大模型:什么是大模型?零基础入门到精通,收藏这篇就够了 2023-01-25
2025版最新常用黑客工具之【Nmap 教程基础】零基础入门到精通,收藏这篇就够了 2023-01-25
2025版最新开发一款大模型需要经过哪些步骤?开发一款大模型的完整流程,收藏这篇就够了 2023-01-25
$.inArray函数判断数组中的是否包含字符串 2023-01-25
2025版最新渗透测试和黑客工具列表,零基础入门到精通,收藏这一篇就够了 2023-01-25
2025版最新网络安全入门书籍整理大全,零基础入门到精通,收藏这篇就够了 2023-01-25
2025版最新网络安全知识入门及学习流程(非常详细)零基础入门到精通,收藏这篇就够了 2023-01-25
2025版最新网络安全等级保护测评指南,零基础入门到精通,收藏这篇就够了 2023-01-25