当前位置: 首页 > news >正文

实战:ZooKeeper 操作命令和集群部署

ZooKeeper 操作命令

ZooKeeper的操作命令主要用于对ZooKeeper服务中的节点进行创建、查看、修改和删除等操作。以下是一些常用的ZooKeeper操作命令及其说明:

一、启动与连接

  1. 启动ZooKeeper服务器:

    ./zkServer.sh start
    

    这个命令用于启动ZooKeeper服务器。

  2. 连接ZooKeeper客户端:

    ./zkCli.sh
    

    或者,指定服务器地址和端口号进行连接:

    ./zkCli.sh -server <ip>:<port>
    
  3. 退出ZooKeeper客户端:

    quit
    
  4. 关闭ZooKeeper服务器:

    ./zkServer.sh stop
    
  5. 查看ZooKeeper服务器状态:

    ./zkServer.sh status
    

二、节点操作

1. 查看节点
  • ls命令:用于列出指定节点下的所有子节点。

    ls <path> [watch]
    

    其中,<path>是节点的路径,[watch]是可选参数,用于监听该节点的变化。 

    图片

  • ls2命令:与ls命令类似,但会同时列出子节点和节点的状态信息。

    ls2 <path> [watch]
    

    图片

  • get命令:用于获取指定节点的数据内容和属性信息。

    get <path> [watch]
    

    图片

2. 创建节点
  • create命令:用于创建一个新的节点。

    create <path> <data> [acl]
    

    其中,<path>是节点的路径,<data>是节点存储的数据,[acl]是可选的访问控制列表。 

    图片

    create -s <path> <data>
    

    顺序节点会在节点名后自动添加一个递增的序列号。

    create -e <path> <data>
    

    临时节点在客户端会话结束后会自动删除。

    • 创建临时节点:使用-e选项。

    • 创建顺序节点:使用-s选项。

3. 修改节点
  • set命令:用于修改指定节点的数据内容。 bash set <path> <data> [version] 其中,<path>是节点的路径,<data>是新的数据内容,[version]是可选的数据版本号,用于控制更新的条件。

4. 删除节点
  • delete命令:用于删除指定节点。

    delete <path> [version]
    

    其中,<path>是节点的路径,[version]是可选的数据版本号。注意,delete命令只能删除空节点(即没有子节点的节点)。 

    图片

    • 删除非空节点:一些ZooKeeper版本或扩展可能提供了deleteall命令来删除非空节点,但这不是ZooKeeper核心功能的标准部分。在实际使用中,需要先删除非空节点的所有子节点,然后再删除该节点。 

      图片

三、其他命令

  • stat命令:用于获取指定节点的状态信息。

    stat <path> [watch]
    

    图片

  • help命令:在ZooKeeper客户端中,可以使用help命令来查看所有可用的命令及其说明。

    help
    

这些命令是ZooKeeper操作中常用的基本命令,它们涵盖了节点的创建、查看、修改和删除等核心功能。在实际使用中,可以根据需要选择合适的命令进行操作。

ZooKeeper 集群部署

ZooKeeper集群部署是一个涉及多个步骤和配置的过程,主要包括环境准备、ZooKeeper安装、配置文件修改、启动和验证集群等关键步骤。以下是一个以3台服务器详细的部署指南:

一、环境准备

  1. 硬件资源:

    • 通常建议使用3台或更多(推荐为2n+1台,n为大于1的整数)的服务器来部署ZooKeeper集群,以确保高可用性和容错性。

    • 每台服务器应具有足够的CPU、内存和存储空间来支持ZooKeeper的运行。

    • 三个节点, 修改操作系统的/etc/hosts文件,添加IP与主机名映射:

10.109.142.53 zk-001
10.109.190.32 zk-002
10.109.165.20 zk-003
  1. 操作系统:

    • 选择支持ZooKeeper的操作系统,如Linux(推荐CentOS、Ubuntu等)。

  2. 网络配置:

    • 确保所有服务器都能相互通信,且网络延迟和丢包率保持在较低水平。

    • 配置好服务器的IP地址和主机名,并确保它们能在集群中正确解析。

  3. 软件依赖:

    • 安装Java环境,因为ZooKeeper是用Java编写的。推荐使用Java 8或更高版本。

    • 安装必要的工具和库,如tar、wget等,以便下载和解压ZooKeeper安装包。

二、ZooKeeper安装

  1. 下载ZooKeeper安装包:

    • 访问Apache ZooKeeper的官方网站(https://zookeeper.apache.org/)或镜像站点,下载最新版本的ZooKeeper安装包。

    • 可以使用wget命令或浏览器下载到本地,然后上传到服务器。

  2. 解压安装包:

    • 将下载的ZooKeeper安装包解压到指定的目录,如/usr/local/

    • 重命名解压后的文件夹,以便更容易识别,如zookeeper-3.x.x

三、配置文件修改

1. 复制配置文件:
  • 进入ZooKeeper的conf目录,复制zoo_sample.cfg文件为zoo.cfg

2. 编辑zoo.cfg文件:

配置如下:

# 服务器之间或客户端与服务器之间维持心跳的时间间隔
# tickTime以毫秒为单位。tickTime=2000# 集群中的follower服务器(F)与leader服务器(L)之间的初始连接心跳数initLimit=10# 集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数syncLimit=5# 快照保存目录# 不要设置为/tmp,该目录重新启动后会被自动清除dataDir=/data/zookeeper/zk1/data# 日志保存目录dataLogDir=/data/zookeeper/zk1/logs# 客户端连接端口clientPort=2181# 客户端最大连接数。# 根据自己实际情况设置,默认为60个# maxClientCnxns=60# 三个接点配置,格式为:# server.服务编号=服务地址、通信端口、选举端口server.1=zk-001:2888:3888server.2=zk-002:2888:3888server.3=zk-003:2888:3888

说明:

  • 修改dataDir参数,指定ZooKeeper存储快照的目录。

  • 如果需要,还可以设置dataLogDir参数,指定ZooKeeper存储事务日志的目录。

  • 修改clientPort参数,设置ZooKeeper服务监听的端口号(默认为2181)。

  • 在配置文件末尾添加集群配置,格式为server.n=host:peerPort:electionPort,其中n是服务器的唯一标识(与myid文件中的值对应);host是服务器的IP地址或主机名;peerPort是用作leader与follwer之间的通信端口号(数据同步),默认为2888;electionPort是用于选举Leader投票的端口号(默认为3888)。

这一步主要是配图中的框出来的内容:

3. 创建myid文件:
  • 在每台服务器的dataDir指定的目录下,创建一个名为myid的文件,内容为该服务器的唯一标识(与zoo.cfg中配置的server.n中的n相对应)。

以第一台为例 vim myid:

按照以上步骤,三台服务器做同样的操作。

四、启动ZooKeeper集群

  1. 启动ZooKeeper服务:

    • 在每台服务器上,进入ZooKeeper的bin目录,执行./zkServer.sh start命令分别启动ZooKeeper服务。

  2. 验证集群状态:

    • 在每台服务器上执行./zkServer.sh status命令,查看ZooKeeper服务的状态。

    • 正常情况下,集群中应该有一个Leader和多个Follower。可以通过查看日志或使用ZooKeeper客户端工具(如zkCli.sh)来进一步验证集群的运行状态。

如第三台服务器: 

图片

五、注意事项

  1. 防火墙和安全组配置:

    • 确保ZooKeeper服务监听的端口(默认为2181)在服务器的防火墙和安全组中已开放。

  2. 数据备份和恢复:

    • 定期备份ZooKeeper的数据目录和日志目录,以便在数据丢失或损坏时能够恢复。

  3. 监控和日志:

    • 配置监控工具来监控ZooKeeper集群的性能和健康状况。

    • 定期查看ZooKeeper的日志文件,以便及时发现并解决问题。

  4. 版本兼容性:

    • 确保集群中所有服务器上的ZooKeeper版本相同,以避免版本不兼容导致的问题。

通过以上步骤,您可以成功部署一个ZooKeeper集群,并确保其能够稳定运行。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Mybatis基础
  • 9000字干货:从消息流平台Serverless之路,看Serverless标准演进
  • Web3.js 4.x版本事件监听详解:从HTTP到WebSocket的迁移
  • C# 设计倒计时器、串口助手开发
  • Geoscene Pro的数据管理
  • 面试场景题系列--(2)短 URL 生成器设计:百亿短 URL 怎样做到无冲突?--xunznux
  • [Spring] Spring配置文件
  • 秋招突击——7/29——操作系统——网络IO
  • 系统移植(八)u-boot源码解析(未整理)
  • 聊聊基于Alink库的主成分分析(PCA)
  • K210视觉识别模块学习笔记8:Mx_yolo3本地模型训练环境搭建_部署模型到亚博canmv(失败)
  • 2-48 基于matlab的EM算法聚类可视化程序
  • 【面试题】喔影网络科技面试题复盘
  • Unity Android接入SDK 遇到的问题
  • springcloud RocketMQ 客户端是怎么走到消费业务逻辑的 - debug step by step
  • Intervention/image 图片处理扩展包的安装和使用
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • Laravel5.4 Queues队列学习
  • Leetcode 27 Remove Element
  • leetcode388. Longest Absolute File Path
  • Linux CTF 逆向入门
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • Mysql数据库的条件查询语句
  • UMLCHINA 首席专家潘加宇鼎力推荐
  • Vue.js-Day01
  • 对象管理器(defineProperty)学习笔记
  • 更好理解的面向对象的Javascript 1 —— 动态类型和多态
  • 关键词挖掘技术哪家强(一)基于node.js技术开发一个关键字查询工具
  • 缓存与缓冲
  • 前端面试之闭包
  • 前端设计模式
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​Python 3 新特性:类型注解
  • ​补​充​经​纬​恒​润​一​面​
  • #Linux(make工具和makefile文件以及makefile语法)
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (12)Hive调优——count distinct去重优化
  • (13)DroneCAN 适配器节点(一)
  • (2024)docker-compose实战 (8)部署LAMP项目(最终版)
  • (3)llvm ir转换过程
  • (Forward) Music Player: From UI Proposal to Code
  • (libusb) usb口自动刷新
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (论文阅读30/100)Convolutional Pose Machines
  • (一)eclipse Dynamic web project 工程目录以及文件路径问题
  • (转)Android学习笔记 --- android任务栈和启动模式
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)平衡树
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .net 桌面开发 运行一阵子就自动关闭_聊城旋转门家用价格大约是多少,全自动旋转门,期待合作...
  • .sdf和.msp文件读取
  • :中兴通讯为何成功
  • ??myeclipse+tomcat