ZooKeeper使用

ZooKeeper 特性
  • 顺序一致性(Sequential Consistency):保证客户端操作是按顺序发生的。
  • 原子性(Atomicity):更新成功或失败,没有部分结果。
  • 单个系统映射:无论连接到哪个服务器,客户端都将看到相同的内容。
  • 可靠性:数据的变更不会丢失,除非被客户端覆盖修改。
  • 及时性:保证系统的客户端当时读取到的数据是最新的。
Watch 监听机制
Watch 重要特性
  • 一次性触发:watch 触发后即被删除,要持续监听变化,则需要持续设置watch。
  • 有序性:客户端先得到watch通知,后才会看到变化结果。
Watch 注意事项
  • watch 是一次性触发器;如果您获得了一个watch事件,并且希望得到关于未来更改的通知,则必须设置另一个watch。
  • 因为watch是一次性触发器,并且在获取事件和发送获取watch的新请求之间存在延迟,所以不能可靠地得到节点发生的每个更改。
  • 一个watch对象只会被特定的通知触发一次。如果一个watch对象同时注册了exists、getData,当节点被删除时,删除事件对exists、getData都有效,但只会调用watch一次。
ZooKeeper 典型应用场景
  • 数据发布订阅(配置中心)
  • 命名服务
  • Master选举
  • 集群管理
  • 分布式队列
  • 分布式锁
使用Zookeeper之前,您需要先安装和配置它。可以参考引用中的文章《Zookeeper的安装配置详解(window / linux)》来了解具体的安装步骤和配置方法。安装完成后,您可以使用以下脚本来启动、停止和查看Zookeeper的状态。 首先,创建一个后缀名为.sh的脚本文件,内容如下: ``` #!/bin/bash case $1 in "start") { for i in hadoop102 hadoop103 hadoop104 do echo ---------- zookeeper $i 启动 ------------ ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh start" done };; "stop") { for i in hadoop102 hadoop103 hadoop104 do echo ---------- zookeeper $i 停止 ------------ ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop" done };; "status") { for i in hadoop102 hadoop103 hadoop104 do echo ---------- zookeeper $i 状态 ------------ ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status" done };; esac ``` 在这个脚本中,我们使用了一个case语句来根据输入的命令参数执行相应的操作。如果参数是"start",则会循环遍历hadoop102、hadoop103和hadoop104,并通过SSH命令在每台机器上启动Zookeeper。类似地,如果参数是"stop",则会停止Zookeeper;如果参数是"status",则会显示Zookeeper的状态。 请注意,在脚本中使用了/opt/module/zookeeper-3.5.7/bin/zkServer.sh命令来启动、停止和查看Zookeeper的状态。如果您在启动Zookeeper时遇到了"FAILED TO START"或"zkServer.sh: command not found"的错误,请确保该命令的路径正确配置和引用,可以参考引用中提到的解决方法。 希望这些信息能帮助到您使用Zookeeper。如果还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值