签到成功

知道了

CNDBA社区CNDBA社区

Zookeeper 概述

2019-03-01 22:22 2045 0 转载 Zookeeper
作者: dave

ZooKeeper是一种分布式协调服务,用于管理大型主机。 在分布式环境中协调和管理服务是一个复杂的过程。 ZooKeeper通过其简单的架构和API解决了这个问题。 ZooKeeper允许开发人员专注于核心应用程序逻辑,而不必担心应用程序的分布式特性。http://www.cndba.cn/dave/article/3292http://www.cndba.cn/dave/article/3292

ZooKeeper框架最初是在“Yahoo!”上构建的,用于以简单而稳健的方式访问他们的应用程序。 后来,Apache ZooKeeper成为Hadoop,HBase和其他分布式框架使用的有组织服务的标准。 例如,Apache HBase使用ZooKeeper跟踪分布式数据的状态。

http://www.cndba.cn/dave/article/3292

1 分布式应用程序

分布式应用可以在给定时间(同时)通过在它们自己之间协调以快速和有效的方式完成特定任务而在网络中的多个系统上运行。 通常,通过使用所有涉及的系统的计算能力,分布式应用可以在几分钟内完成非分布式应用(在单个系统中运行)需要数小时完成的复杂和耗时的任务。

通过将分布式应用程序配置为在更多系统上运行,可以进一步减少完成任务的时间。 其中运行分布式应用的一组系统称为集群,并且在集群中运行的每个机器被称为节点。

分布式应用程序有两部分, Server 和 Client 应用程序。 服务器应用程序实际上是分布式的,并具有通用接口,以便客户端可以连接到集群中的任何服务器,并获得相同的结果。 客户端应用程序是与分布式应用程序交互的工具。http://www.cndba.cn/dave/article/3292

http://www.cndba.cn/dave/article/3292

2 分布式应用程序的优点

  1. 可靠性:
    单个或几个系统的故障不会使整个系统出现故障。
  2. 可扩展性:
    可以通过添加更多机器,在应用程序配置中进行微小更改而不增加停机时间,从而提高性能。
  3. 透明:
    隐藏系统的复杂性,并将其显示为单个实体/应用程序。

3 分布式应用的挑战

  1. 种族条件:
    两个或多个机器尝试执行特定任务,实际上只需在任何给定时间由单个机器完成。 例如,共享资源只能在任何给定时间由单个机器修改。
  2. 死锁:
    两个或多个操作等待互相无限期完成。
  3. 不一致:
    数据部分失败。

4 什么是Apache ZooKeeper?

Apache ZooKeeper是由集群(节点组)使用的一种服务,用于在自身之间协调并使用鲁棒同步技术维护共享数据。 ZooKeeper本身是一个分布式应用程序,提供用于编写分布式应用程序的服务。

ZooKeeper提供的常见服务如下 :

  1. 命名服务 - 按名称标识集群中的节点。 它类似于DNS,但是对于节点。
  2. 配置管理 - 系统最新加入的节点和最新的配置信息。
  3. 集群管理 - 加入/退出集群中的节点和节点的实时状态。
  4. 选举算法 - 选择节点作为协调目的的leader。
  5. 锁定和同步服务 - 在修改数据时锁定数据。 此机制可帮助您在连接其他分布式应用程序(如Apache HBase)时进行自动故障恢复。
  6. 高度可靠的数据注册表 - 即使一个或几个节点关闭时数据的可用性。

分布式应用程序提供了很多好处,但它们也提出了一些复杂和难以克服的挑战。 ZooKeeper框架提供了一个完整的机制来克服所有的挑战。使用故障安全同步方法来处理竞争条件和死锁。 另一个主要缺点是数据的不一致性,ZooKeeper使用原子性来解决。

http://www.cndba.cn/dave/article/3292
http://www.cndba.cn/dave/article/3292

5 ZooKeeper的好处

使用ZooKeeper的好处 :

http://www.cndba.cn/dave/article/3292
http://www.cndba.cn/dave/article/3292http://www.cndba.cn/dave/article/3292

  1. 简单分布式协调过程
  2. 同步 - 服务器进程之间的相互排斥和协作。 此过程有助于Apache HBase进行配置管理。
  3. 有序消息
  4. 序列化 - 根据特定规则对数据进行编码。 确保应用程序始终运行。 这种方法可以在MapReduce中使用来协调队列以执行运行的线程。
  5. 可靠性
  6. 原子性 - 数据传输成功或完全失败,但没有事务处理。
用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2261
    原创
  • 3
    翻译
  • 578
    转载
  • 191
    评论
  • 访问:7995755次
  • 积分:4346
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ