zookeeper

Zookeeper 是一个分布式应用程序协调服务,常用于配置维护、域名服务、分布式同步和组服务。它提供数据同步、领导选举、分布式锁等功能,确保高可用性和有序访问。在Hadoop和Hbase生态系统中扮演重要角色。Zookeeper 的节点(Znode)具有原子性操作,支持数据版本管理和Watcher机制,广泛应用于数据发布订阅、命名服务、分布式通知、集群管理等多个场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

zookeeper分布式应用程序协调服务,是Hadoop和Hbase的重要组件。提供的功能包括:配置维护、域名服务、分布式同步、组服务,DNS 服务,分布式锁等。

Zookeeper:主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、分布式应用配置项的管理等。

ZooKeeper 适用于存储和协同相关的关键数据,不适合用于大数据量存储

Zookeeper 从程序员的角度来讲可以理解为Hadoop的整体监控系统。如果namenode,HMaster宕机后,这时候Zookeeper 的重新选出leader
Zookeeper实现了高性能,高可靠性,和有序的访问。高性能保证了zookeeper能应用在大型的分布式系统上。高可靠性保证它不会由于单一节点的故障而造成任何问题。有序的访问能保证客户端可以实现较为复杂的同步操作。
功能:
1、数据同步,对集群上一台机器上做的操作,会同步到另一台
2、leader死掉后会有内部选举,重新选举leader
3、Hadoop-Ha 中只有一个nameNode处于激活状态,zookeeper用来确保这一点,同时,如果挂掉,zookeeper负责切换,同时将故障转移
4、Zkfc 监控nameNode状态
https://blog.youkuaiyun.com/qq_34764487/article/details/78379565
zookeeper架构

Znode维护着数据、ACL(access control list,访问控制列表)、时间戳等交换版本号等数据结构,它通过对这些数据的管理来让缓存生效并且令协调更新。每当Znode中的数据更新后它所维护的版本号将增加,这非常类似于数据库中计数器时间戳的操作方式。

另外Znode还具有原子性操作的特点:命名空间中,每一个Znode的数据将被原子地读写。读操作将读取与Znode相关的所有数据,写操作将替换掉所有的数据。
Zookeeper运用场景

数据发布与订阅
应用配置集中到节点上,应用启动时主动获取,并在节点上注册一个watcher,每次配置更新都会通知到应用。

命名空间服务
分布式命名服务,创建一个节点后,节点的路径就是全局唯一的,可以作为全局名称使用。

分布式通知/协调
不同的系统都监听同一个节点,一旦有了更新,另一个系统能够收到通知。

分布式锁
Zookeeper能保证数据的强一致性,用户任何时候都可以相信集群中每个节点的数据都是相同的。一个用户创建一个节点作为锁,另一个用户检测该节点,如果存在,代表别的用户已经锁住,如果不存在,则可以创建一个节点,代表拥有一个锁。

集群管理
每个加入集群的机器都创建一个节点,写入自己的状态。监控父节点的用户会受到通知,进行相应的处理。离开时删除节点,监控父节点的用户同样会收到通知。

开启zookeeper
./zkServer.sh start
create /节点名称 值
zookeeper只能监控安装zookeeper的节点信息:
get 节点

/letv/data/zookeeper-3.4.5/tmp中的myid,这个id是很重要的,一定要保证整个集群中唯一。
/letv/data/zookeeper-3.4.5/conf /zoo.cfg 配置信息
端口是2181
数据目录:dataDir=/letv/data/zookeeper-3.4.5/tmp
必须要启动集群的一半以上:
查看状态:./zkServer.sh status
最开始启动的是leader,其余是follower
启动自己的客户端:
./zkCli.sh
进程名称:QuorumPeerMain

5、启动journalnode
sbin/hadoop-daemons.sh start journalnode

参考:
http://blog.youkuaiyun.com/nsrainbow/article/details/42836479
http://blog.163.com/wm_at163/blog/static/1321734902012325103119779/?suggestedreading&wumii
http://www.yiibai.com/zookeeper/zookeeper_cli.html

Curator API
http://ifeve.com/zookeeper-curato-framework/

搭建:
http://eksliang.iteye.com/blog/2107002
http://eksliang.iteye.com/blog/2226986
http://blog.youkuaiyun.com/u011414200/article/details/50248079

启动集群出现如下错误:
Error contacting service. It is probably not running

sh zkServer.sh status #查看当前状态,他会报异常,不要紧,因为是集群,其他两台没有起来,无法进行相互连接,当然报错,启动另外两台就不会报错了!

Zookeeper系列(3)–Paxos算法的原理及过程透彻理解

https://blog.youkuaiyun.com/u013679744/article/details/79222103

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值