简介
ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。
Zookeeper是Google的Chubby一个开源的实现,是高有效和可靠的协同工作系统,Zookeeper能够用来leader选举,配置信息维护等,在一个分布式的环境中,需要一个Master实例或存储一些配置信息,确保文件写入的一致性等.
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,包含一个简单的原语集,是Hadoop和Hbase的重要组件。 提供Java和C的接口。
原理
ZooKeeper是以Fast Paxos算法为基础的,paxos算法存在活锁的问题,即当有多个proposer交错提交时,有可能互相排斥导致没有一个proposer能提交成功,而Fast Paxos作了一些优化,通过选举产生一个leader,只有leader才能提交propose,具体算法可见Fast Paxos。因此,要想弄懂ZooKeeper首先得对Fast Paxos有所了解。[4]
ZooKeeper的基本运转流程:
1、选举Leader。
2、同步数据。
3、选举Leader过程中算法有很多,但要达到的选举标准是一致的。
4、Leader要具有最高的zxid。
5、集群中大多数的机器得到响应并follow选出的Leader。
ZooKeeper代码版本中,提供了分布式独享锁、选举、队列的接口,代码在zookeeper-3.4.3\src\recipes。其中分布锁和队列有Java和C两个版本,选举只有Java版本
特点
在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据.如果在创建znode时Flag设置 为EPHEMERAL,那么当这个创建这个znode的节点和Zookeeper失去连接后,这个znode将不再存在在Zookeeper 里.Zookeeper使用Watcher察觉事件信息,当客户端接收到事件信息,比如连接超时,节点数据改变,子节点改变,可以调用相应的行为来处理数 据.Zookeeper的Wiki页面展示了如何使用Zookeeper来处理事件通知,队列,优先队列,锁,共享锁,可撤销的共享锁,两阶段提交.
那么Zookeeper能作什么事情呢,简单的例子:假设我们我们有个20个搜索引擎的服务器(每个负责总索引中的一部分的搜索任务)和一个 总服务器(负责向这20个搜索引擎的服务器发出搜索请求并合并结果集),一个备用的总服务器(负责当总服务器宕机时替换总服务器),一个web的 cgi(向总服务器发出搜索请求).搜索引擎的服务器中的15个服务器提供搜索服务,5个服务器正在生成索引.这20个搜索引擎的服务器经常要让正在 提供搜索服务的服务器停止提供服务开始生成索引,或生成索引的服务器已经把索引生成完成可以搜索提供服务了.使用Zookeeper可以保证总服务器自动 感知有多少提供搜索引擎的服务器并向这些服务器发出搜索请求,备用的总服务器宕机时自动启用备用的总服务器
几篇不错的文章: http://agapple.iteye.com/blog/1111377
- http://www.ibm.com/developerworks/cn/opensource/os-cn-zookeeper/ (介绍了zookeeper能用来干嘛)
- http://zookeeper.apache.org/doc/r3.3.2/zookeeperOver.html (官方文档,大致介绍zookeeper)
相关推荐
### Zookeeper 入门知识点详解 #### 一、Zookeeper 是什么? Zookeeper是一个用于分布式应用协调服务的软件。它可以维护配置信息、提供命名服务、实现分布式同步,并且支持组服务功能。简单来说,Zookeeper就是一...
**Zookeeper系列1:入门** Zookeeper是一款分布式协调服务,由Apache基金会开发,广泛应用于分布式系统中的数据共享、配置管理、命名服务、集群同步等场景。它的设计目标是简化分布式环境下的复杂问题,提供高可用...
《Zookeeper入门到精通》教学视频及文档涵盖了分布式协调...通过学习《Zookeeper入门到精通》的教学视频和文档,你将全面掌握Zookeeper的基础知识,并能灵活运用到实际的分布式系统开发和运维中,提升你的IT技能水平。
【标题】"dubbo+zookeeper入门资源"涵盖了两个核心概念:Dubbo和Zookeeper,它们在分布式系统中扮演着重要角色。Dubbo是中国阿里巴巴开源的一款高性能、轻量级的Java服务治理框架,它提供了服务注册、服务发现、调用...
介绍ZooKeeper服务的基础知识,并详细了解了数据模型及其属性
【标题】"dubbo+zookeeper入门实例"是一个关于使用Dubbo框架与Zookeeper结合实现服务发现和服务调用的基础教程。Dubbo是阿里巴巴开源的一款高性能、轻量级的Java分布式服务框架,而Zookeeper则是一个分布式服务协调...
在“ZooKeeper入门简介及配置使用”文档中,你将学习到以下关键知识点: 1. **ZooKeeper的基本概念**:了解ZooKeeper的核心组件,包括服务器节点、客户端、会话、Watcher、ZNode(ZooKeeper的数据节点)等。理解...
使用场景及目标:旨在帮助读者掌握ZooKeeper的基础理论知识和实际动手能力,能够熟练运用ZooKeeper解决分布式系统中的协同作业问题。 阅读建议:建议读者跟随教程逐步操作,亲身体验各个功能的实际效果,从而加深对...
### ZooKeeper基础知识与核心概念 #### 一、ZooKeeper简介 ZooKeeper是一个高度可用且分布式的协调服务,主要用于解决分布式环境中复杂的应用程序一致性问题。作为一款开源工具,ZooKeeper提供了简单易用的API,使...
使用场景及目标:本文适合于想要了解ZooKeeper的基础知识及其简单使用的个人,尤其是刚开始接触Hadoop生态系统的新手。 其他说明:文档采用循序渐进的教学方式,每一步都有具体的命令和说明支持,非常适合自学或培训...
这个“Zookeeper中文开发指南”是针对开发人员和系统管理员的一份宝贵的资源,它涵盖了从基础概念到高级应用的所有关键知识点。 **一、Zookeeper基本概念** 1. **节点(Znode)**: ZooKeeper 的数据存储结构基于树...
本案例"Dubbo和Zookeeper整合入门案例"旨在帮助开发者理解如何将这两款强大的工具集成到一起,实现服务的注册、发现以及负载均衡。以下是关于这些知识点的详细说明: **Dubbo** Dubbo是由阿里巴巴开源的高性能Java ...
### Zookeeper 学习入门知识点 #### 一、Zookeeper 概述与核心价值 - **定义**: Zookeeper 是一个高度可靠的关键值存储系统,它主要用于解决分布式环境中的一致性问题,例如配置管理、命名服务、分布式同步以及...
### Zookeeper快速入门知识点 #### 一、Zookeeper基本功能及应用场景 Zookeeper是一个分布式的、开放源码的协调服务,用于大型应用中管理和协调分布式环境下的服务。它提供了简单的接口来实现复杂的一致性问题,如...
《Zookeeper一站式学习资料》是一份全面覆盖Zookeeper基础到高级知识的学习资源包,旨在帮助初学者快速入门并深入理解Zookeeper。这份资料包含了丰富的文本资料、视频教程以及相关的实践代码,是学习分布式协调服务...
尚硅谷大数据技术之Zookeeper1是关于Apache Zookeeper入门教程的一部分,旨在介绍Zookeeper的基本概念、特点、数据结构、应用场景以及如何在本地模式下进行安装和操作。Zookeeper是一个开源的分布式协调服务,它在...
ZooKeeperStart系统环境jdk版本:jdk1.8zookeeper版本: 3.4.11操作系统版本:Ubuntu 5.4.0zookeeper常见知识权限create:创建子节点read:获取节点/子节点write:设置节点数据delete:删除子节点admin:设置权限打开...
内容概要:本文详细介绍了 Apache ZooKeeper 的基础知识、安装步骤以及基本操作。首先,从下载和解压安装包开始,然后逐步配置 ZooKeeper,启动和检查状态。接着,使用命令行工具进行基本的操作,如创建、查看、列出...
首先,从基本概念、数据结构、集群架构等方面入手,帮助读者全面了解ZooKeeper的基础知识。接下来,深入探讨了ZooKeeper的安装配置步骤,使读者能够在本地环境中部署和运行ZooKeeper服务。最后,通过多个实战案例...
总结来说,Hadoop快速入门的第四章主要介绍了Zookeeper的安装和配置,这对于理解和实践Hadoop分布式计算至关重要。通过学习Zookeeper,你可以更好地理解分布式系统的协调机制,提升你在大数据领域的专业能力。