博客
关于我
Zookeeper学习笔记
阅读量:411 次
发布时间:2019-03-06

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

Zookeeper 介绍与操作指南

Zookeeper 是一个开源的分布式应用程序协调服务,主要用于集中管理配置信息并提供分布式的同步机制。作为 Google Chubby 的开源实现,Zookeeper 在现代分布式系统中占据重要地位,广泛应用于 Hadoop、HBase、Kafka 等项目中,是每个分布式开发人员必须掌握的技能。


Zookeeper 的特点

Zookeeper 的设计理念体现在以下几个方面:

  • 简单:核心是一个精简的文件系统,支持基本操作和抽象操作(如排序和通知)。
  • 丰富:原语操作丰富,可实现分布式队列、分布式锁及同级别节点的领导者选举等协调数据结构。
  • 高可用:支持集群模式,轻松解决单点故障问题。
  • 松耦合式交互:进程间交互不需要了解彼此,某进程可以在离开后留下消息供其他进程读取。
  • 资源库:提供一个通用协调模式的开源共享存储库,减少对通用协议的编写需求。

  • 常用操作

    1. 安装与启动

    通过 Docker 启动 Zookeeper:

    docker pull zookeeperdocker run -p 2181:2181 zookeeper

    进入容器执行命令:

    docker exec -it $(docker ps | grep zookeeper | awk '{print $2}')

    2. 查看运行状态

    ./zkServer.sh status

    3. 客户端连接

    ./zkCli.sh

    4. 常用命令

    • 查看节点信息

      ls /zookeeper
    • 获取节点更新信息

      stat /zookeeper
    • 创建节点

      create /path [options] data [acl]
      • -s:创建顺序节点。
      • -e:创建临时节点。
    • 修改节点数据

      set /path data_version
    • 删除节点

      delete /path [version]
    • 设置watch事件

      stat /path [watch]

      或者:

      get /path [watch]

    ACL 权限

    Zookeeper 的节点支持5种操作权限:CREATE、READ、WRITE、DELETE、ADMIN。其中,DELETE 指子节点删除权限,其余权限指对自身节点的操作权限。

    认证方式

  • world:默认权限,所有用户均可访问。
  • auth:认证用户(可通过 addauth 命令添加)。
  • digest:基于用户名:密码的认证方式。
  • ip:基于IP地址的认证。

  • 四字命令

    Zookeeper 提供一些四字命令用于查询服务状态及相关信息。这些命令主要通过 telnetnc 提交:

    四字命令 功能描述
    conf 输出服务配置详情
    cons 列出所有客户端的会话信息
    dump 列出未处理的会话及临时节点
    envi 输出服务环境详情
    reqs 列出未处理的请求
    ruok 测试服务状态(返回“imok”或无响应)
    stat 输出性能和客户端连接详情
    wchs 列出服务器watch的详细信息
    wchc 通过session列出watch详情
    wchp 通过路径列出watch详情

    参考资料

  • Zookeeper官方文档
  • Zookeeper GitHub仓库
  • Zookeeper教程
  • Zookeeper CLI命令参考

  • Zookeeper 的学习和实践将帮助你更好地理解分布式系统的核心架构,是一项值得投入的学习之路!

    转载地址:http://uerkz.baihongyu.com/

    你可能感兴趣的文章
    python 利用已有Ner模型进行数据清洗合并
    查看>>
    python 到大数据开发工程师_如何成为一个大数据开发工程师?
    查看>>
    python 加密解密(base64, AES)
    查看>>
    Python 包管理器和 Node.js
    查看>>
    python 启动提示IDLE's subprocess didn't make conne...
    查看>>
    Python 和 OpenCV.如何检测图像中的所有(填充)圆形/圆形对象?
    查看>>
    Python 和 RabbitMQ - 聆听来自多个渠道的消费事件的最佳方式?
    查看>>
    python编辑器打不开_关于命令ride.py打不开RF,而是打开pycharm编辑器问题解决思路...
    查看>>
    python编译exe同时支持32位_第三周:同时管理64位和32位版本的Python,并用Pyinstaller打包成exe...
    查看>>
    Python 和Java 哪个更适合做自动化测试?
    查看>>
    Python编程:掌握高级语言程序设计。从零基础到精通,收藏这篇就够了!
    查看>>
    python 图片转ico
    查看>>
    python 图片转文字、语音转文字、文字转语音保存音频并朗读
    查看>>
    python 在包含类似字符\x16、\x12、\x某某的数组中将以\x开头的字符找出来的方法
    查看>>
    Python 在并行进程之间共享字典
    查看>>
    Python 垃圾收集器文档
    查看>>
    python 基于 wordcloud + jieba + matplotlib 生成词云
    查看>>
    python 基于detectron或mask_rcnn的mask遮罩区域进行图片截取
    查看>>
    Python编程:Tkinter图形界面设计(2)
    查看>>
    Python 基础 - Day 5 Learning Note - 模块 之 标准库:time (1)
    查看>>