Zookeeper 简明教程

Zookeeper - Applications

Zookeeper 为分布式环境提供了灵活的协调基础架构。ZooKeeper 框架支持当今许多最佳工业应用。本章我们将讨论 ZooKeeper 一些最著名的应用。

Yahoo!

ZooKeeper 框架最初是在“Yahoo!”中构建的。设计良好的分布式应用需要满足数据透明性、更好的性能、健壮性、集中式配置和协调等要求。因此,他们设计了 ZooKeeper 框架来满足这些要求。

Apache Hadoop

Apache Hadoop 是大数据行业增长的推动力。Hadoop 依赖 ZooKeeper 来进行配置管理和协调。让我们采用一个场景来理解 ZooKeeper 在 Hadoop 中扮演的角色。

假设 Hadoop cluster 桥接 100 or more commodity servers 。因此,需要协调和命名服务。因为计算涉及大量节点,所以每个节点需要相互同步,知道在哪里访问服务,并知道它们应如何配置。在此时刻,Hadoop 集群需要跨节点服务。ZooKeeper 为 cross-node synchronization 提供了便利,并确保 Hadoop 项目中的任务被序列化和同步。

多个 ZooKeeper 服务器支持大型 Hadoop 集群。每台客户端机器与一台 ZooKeeper 服务器通信以检索和更新其同步信息。一些实时示例如下 −

  1. Human Genome Project − 人类基因组计划包含数 TB 数据。Hadoop MapReduce 框架可用于分析数据集并找出对人类发展具有启发意义的事实。

  2. Healthcare − 医院可以存储、检索和分析大量的患者医疗记录,这些记录通常以 TB 为单位。

Apache HBase

Apache HBase 是一个开源、分布式 NoSQL 数据库,用于大数据集的实时读/写访问,并在 HDFS 之上运行。HBase 遵循 master-slave architecture ,其中 HBase Master 管理所有从属。从属被称为 Region servers

HBase 分布式应用程序的安装依赖于一个正在运行的 ZooKeeper 集群。Apache HBase 使用 ZooKeeper 来跟踪主服务器和地区服务器中分布式数据的状态,这依靠 centralized configuration managementdistributed mutex 机制。以下是一些 HBase 的用例 −

  1. Telecom − 电信行业存储着数十亿条移动通话记录(约为每月 30TB),实时访问这些通话记录成为一项艰巨的任务。HBase 可用于实时轻松高效地处理所有记录。

  2. Social network − 类似于电信行业,Twitter、LinkedIn 和 Facebook 等网站会通过用户创建的帖子收到大量数据。HBase 可用于找出近期趋势和其他启发意义的事实。

Apache Solr

Apache Solr 是一个用 Java 编写的快速、开源的搜索平台。它是一个速度惊人、容错的分布式搜索引擎。它建立在 Lucene 之上,是一个高性能、功能齐全的文本搜索引擎。

Solr 大量使用了 ZooKeeper 的每一个功能,例如配置管理、领导者选举、节点管理、数据的锁定和同步。

Solr 有两个不同的部分: indexingsearching 。索引是一个以适当格式存储数据的过程,以便以后可以对其进行搜索。Solr 使用 ZooKeeper 在多个节点上对数据建立索引并从多个节点进行搜索。ZooKeeper 贡献了以下功能 −

  1. 根据需要添加/移除节点

  2. 在节点间复制数据,从而最大程度地减少数据丢失

  3. 在多个节点间共享数据,并且从多个节点搜索以获得更快的搜索结果

Apache Solr 的一些用例包括电子商务、职位搜索等。