`
standalone
  • 浏览: 610965 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

zookeeper介绍

阅读更多

ZooKeeper是Hadoop的正式子项目,它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。ZooKeeper的目标就是封装好复杂易出错的关键服务,将简单易用的接口和性能高效、功能稳定的系统提供给用户。

Zookeeper是Google的Chubby一个开源的实现.是高有效和可靠的协同工作系统.Zookeeper能够用来leader选举,配置信息维护等.在一个分布式的环境中,我们需要一个Master实例或存储一些配置信息,确保文件写入的一致性等.Zookeeper能够保证如下3点:

  • Watches are ordered with respect to other events, other watches, and
    asynchronous replies. The ZooKeeper client libraries ensures that
    everything is dispatched in order.
  • A client will see a watch event for a znode it is watching before seeing the new data that corresponds to that znode.
  • The order of watch events from ZooKeeper corresponds to the order of the updates as seen by the ZooKeeper service.

 

在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据.如果在创建znode时Flag设置 为EPHEMERAL,那么当这个创建这个znode的节点和Zookeeper失去连接后,这个znode将不再存在在Zookeeper 里.Zookeeper使用Watcher察觉事件信息,当客户端接收到事件信息,比如连接超时,节点数据改变,子节点改变,可以调用相应的行为来处理数 据.Zookeeper的Wiki页面展示了如何使用Zookeeper来处理事件通知,队列,优先队列,锁,共享锁,可撤销的共享锁,两阶段提交.

那么Zookeeper能帮我们作什么事情呢?简单的例子:假设我们我们有个20个搜索引擎的服务器(每个负责总索引中的一部分的搜索任务)和一个 总服务器(负责向这20个搜索引擎的服务器发出搜索请求并合并结果集),一个备用的总服务器(负责当总服务器宕机时替换总服务器),一个web的 cgi(向总服务器发出搜索请求).搜索引擎的服务器中的15个服务器现在提供搜索服务,5个服务器正在生成索引.这20个搜索引擎的服务器经常要让正在 提供搜索服务的服务器停止提供服务开始生成索引,或生成索引的服务器已经把索引生成完成可以搜索提供服务了.使用Zookeeper可以保证总服务器自动 感知有多少提供搜索引擎的服务器并向这些服务器发出搜索请求,备用的总服务器宕机时自动启用备用的总服务器,web的cgi能够自动地获知总服务器的网络 地址变化.这些又如何做到呢?

  1.  提供搜索引擎的服务器都在Zookeeper中创建znode,zk.create("/search/nodes/node1",
    "hostname".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateFlags.EPHEMERAL);
  2. 总服务器可以从Zookeeper中获取一个znode的子节点的列表,zk.getChildren("/search/nodes", true);
  3. 总服务器遍历这些子节点,并获取子节点的数据生成提供搜索引擎的服务器列表.
  4. 当总服务器接收到子节点改变的事件信息,重新返回第二步.
  5. 总服务器在Zookeeper中创建节点,zk.create("/search/master", "hostname".getBytes(), Ids.OPEN_ACL_UNSAFE, CreateFlags.EPHEMERAL);
  6. 备用的总服务器监控Zookeeper中的"/search/master"节点.当这个znode的节点数据改变时,把自己启动变成总服务器,并把自己的网络地址数据放进这个节点.
  7. web的cgi从Zookeeper中"/search/master"节点获取总服务器的网络地址数据并向其发送搜索请求.
  8. web的cgi监控Zookeeper中的"/search/master"节点,当这个znode的节点数据改变时,从这个节点获取总服务器的网络地址数据,并改变当前的总服务器的网络地址.

 

  • 大小: 26.4 KB
分享到:
评论

相关推荐

    zookeeper介绍-ppt

    介绍了关于zookeeper的使用、原理及经典案例,可供学习参考

    Hadoop深入浅出之Zookeeper介绍.pptx

    Zookeeper 是一个分布式协调服务,源自 Google 的 Chubby 实现,是 Hadoop 生态系统中的重要组成部分。它的设计目标是解决分布式环境中的协调问题,如同步服务、配置维护和命名服务。Zookeeper 提供了一组简单的原语...

    java中的zookeeper

    `01_zookeeper介绍和应用场景.docx`、`02_使用java操作zookeeper创建节点.docx`、`03_使用java操作zk创建节点02.docx`这些文档可能涵盖了如何连接ZooKeeper服务器,创建持久节点和临时节点,以及如何监听节点变化等...

    使用ansible安装zookeeper

    **二、Zookeeper介绍** Zookeeper是由Apache基金会开发的一个开源项目,它提供了一个高可用、高性能的分布式协调服务。Zookeeper的主要功能包括命名服务、配置管理、集群同步、分布式锁等,是构建分布式系统的重要...

    ZooKeeper技术原理与应用.pptx

    ZooKeeper技术原理与应用 ZooKeeper是一种分布式协调服务,用于维护和监控存储数据状态的变化,解决分布式集群中应用程序的一致性问题。 ZooKeeper的核心是原子广播机制,保障了各个Server之间的同步。 ZooKeeper...

    Zookeeper 简介 搭建

    **Zookeeper 简介与搭建** Zookeeper 是一个分布式协调服务,由雅虎和 Apache 软件基金会共同开发,是 Hadoop 生态系统中的重要组成部分。它提供了一种集中式的服务,用于命名、配置管理、分布式同步、组服务等,常...

    zookeeper使用总结

    - **Zookeeper 介绍** Zookeeper 是一个分布式协调服务框架,旨在简化分布式应用程序的开发。它提供了一个高性能的协同工作系统,使得开发者能够专注于应用程序的核心逻辑,而无需过多关注分布式系统的复杂性。 -...

    4.zookeeper运维实战视频教程资料-详细课件笔记总结

    1.zookeeper介绍、安装方式和应用场景 2.zookeeper的单机安装和配置文件介绍 3.zookeeper的集群安装 4.zookeeper的数据结构、节点类型、数据持久化 5.zookeeper命令行相关操作 6.zookeeper的基本特性、watch监听和...

    从Paxos到Zookeeper分布式一致性原理与实践(完整版)

    4. **Zookeeper介绍**:Zookeeper是Apache的一个开源项目,它为分布式应用提供了高可用的数据存储和协调服务。书中会详细解释Zookeeper的设计目标、架构以及核心功能,如命名服务、配置管理、分布式锁等。 5. **...

    zookeeper介绍.

    zookeeper简介,方便了解zookeeper的前世今生,方便大家。

    zookeeper安装文档1

    Zookeeper 介绍 - **定义**: ZooKeeper 是一款分布式的、开源的应用程序协调服务。它最初由雅虎实验室开发,并于2008年成为Apache顶级项目。ZooKeeper 的设计目的是解决分布式环境中常见的协调问题。 - **功能**: ...

    Linux下的 Dubbo zookeeper

    1. **Zookeeper介绍** Zookeeper是由Apache基金会开发的开源项目,它提供了一种简单易用的API,用于实现分布式系统的协调。Zookeeper的主要功能包括节点创建与删除、数据发布与订阅、选举机制、分布式锁等,是构建...

    zookeeper-register-center.rar

    二、Spring Cloud Zookeeper介绍 Spring Cloud Zookeeper是Spring Cloud生态中的一个组件,它为Spring Boot应用提供了与Zookeeper集成的能力,实现了服务注册与发现。通过使用Spring Cloud Zookeeper,我们可以轻松...

    springboot_dubbo.zip

    三、Zookeeper介绍 Zookeeper是一个分布式的,开放源码的分布式应用程序协调服务,它是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作。最终将简单易用的接口和性能高效、设计稳定...

    Zookeeper初识

    #### 三、Zookeeper介绍 ZooKeeper 是一个分布式协调服务框架,主要用于解决分布式系统中常见的协调问题。它由雅虎开发,并作为 Google 的 Chubby 的开源实现。ZooKeeper 的设计目标是简化那些容易出错的分布式一致...

Global site tag (gtag.js) - Google Analytics