Zookeeper教程

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

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

在进一步深入之前,我们了解关于分布式应用的一两件事情是很重要的。因此,让我们开始分布式应用的概述的快速讨论。


分布式应用

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

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

分布式应用有两部分, Server(服务器)  Client(客户端) 应用程序。服务器应用程序实际上是分布式的,并具有通用接口,以便客户端可以连接到集群中的任何服务器并获得相同的结果。 客户端应用程序是与分布式应用进行交互的工具。

Zookeeper 概述

分布式应用的优点

  • 可靠性 - 单个或几个系统的故障不会使整个系统出现故障。

  • 可扩展性 - 可以在需要时增加性能,通过添加更多机器,在应用程序配置中进行微小的更改,而不会有停机时间。

  • 透明性 - 隐藏系统的复杂性,并将其显示为单个实体/应用程序。

分布式应用的挑战

  • 竞争条件 - 两个或多个机器尝试执行特定任务,实际上只需在任意给定时间由单个机器完成。例如,共享资源只能在任意给定时间由单个机器修改。

  • 死锁 - 两个或多个操作等待彼此无限期完成。

  • 不一致 - 数据的部分失败。


什么是Apache ZooKeeper?

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

ZooKeeper提供的常见服务如下 :

  • 命名服务 - 按名称标识集群中的节点。它类似于DNS,但仅对于节点。

  • 配置管理 - 加入节点的最近的和最新的系统配置信息。

  • 集群管理 - 实时地在集群和节点状态中加入/离开节点。

  • 选举算法 - 选举一个节点作为协调目的的leader。

  • 锁定和同步服务 - 在修改数据的同时锁定数据。此机制可帮助你在连接其他分布式应用程序(如Apache HBase)时进行自动故障恢复。

  • 高度可靠的数据注册表 - 即使在一个或几个节点关闭时也可以获得数据。

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


ZooKeeper的好处

以下是使用ZooKeeper的好处:

  • 简单的分布式协调过程

  • 同步 - 服务器进程之间的相互排斥和协作。此过程有助于Apache HBase进行配置管理。

  • 有序的消息

  • 序列化 - 根据特定规则对数据进行编码。确保应用程序运行一致。这种方法可以在MapReduce中用来协调队列以执行运行的线程。

  • 可靠性

  • 原子性 - 数据转移完全成功或完全失败,但没有事务是部分的。


ZooKeeper在企业中的运用

雅虎

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

Apache Hadoop

Apache Hadoop是大数据行业发展的推动力。Hadoop依靠ZooKeeper进行配置管理和协调。让我们来了解一下ZooKeeper在Hadoop中的作用。

假设 Hadoop集群 桥接100个或更多的商品服务器。那么,就需要协调和命名服务。因此涉及大量节点的计算,每个节点需要彼此同步,知道在哪里访问服务器,以及知道如何配置它们。在这个时间点,Hadoop集群需要跨节点服务器。ZooKeeper提供跨节点同步的功能,并确保跨越Hadoop项目的任务被序列化和同步化。

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

  • 人类基因组计划 - 人类基因组计划包含兆兆字节数据。Hadoop MapReduce框架可用于分析数据集并为人类发展找到有趣的事实。

  • 医疗保健 - 医院可以存储,检索和分析大量患者医疗记录,通常为兆兆字节。

Apache HBase

Apache HBase是一个开源的,分布式的NoSQL数据库,用于大型数据集的实时读/写访问,并在HDFS上运行。HBase遵循主从架构,HBase主控制所有从机。从机称为区域服务器

HBase分布式应用程序安装取决于运行的ZooKeeper集群。Apache HBase使用ZooKeeper通过集中式配置管理分布式互斥机制来帮助主机和区域服务器跟踪分布式数据的状态。以下是一些HBase的用例:

  • 电信 - 电信行业存储数十亿条移动通话记录(约30TB/月),实时访问这些通话记录成为一项巨大的任务。HBase可以用来实时,轻松,高效地处理所有记录。

  • 社交网络 - 与电信行业类似,Twitter,LinkedIn和Facebook等网站通过用户创建的帖子接收大量数据。HBase可以用来查找最近的趋势和其他有趣的事实。

Apache Solr

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

Solr广泛使用ZooKeeper的每个功能,如配置管理,leader选举,节点管理,数据锁定和同步化。

Solr有两个不同的部分,索引搜索。索引是以适当格式存储数据以便后续可以搜索的过程。Solr使用ZooKeeper对多个节点中的数据进行索引和搜索。ZooKeeper提供以下功能:

  • 根据需要添加/删除节点

  • 在节点之间复制数据,随后最小化数据丢失

  • 在多个节点之间共享数据,随后从多个节点搜索以获得更快的搜索结果

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


Zookeeper教程

相关教程

更多

Zookeeper+Tomcat+SolrCloud实现Solr集群-solr视频教程

                    Apache Solr 是一种开放源码的、基于 Lucene 的Java 的搜索服务器,易于加入到 Web 应用程序中。Solr 提供了层面搜索、命中醒目显示并且支持多种输出格式(包括 XML/XSLT 和 JSON 格式)。它易于安装和配置,而且附带了一个基于 HTTP 的管理界面。您可以坚持使用 Solr 的表现优异的基本搜索功能,也可以对它进行扩展从而满足企业的需要。 SolrCloud是基
                

[Zookeeper研究]一 Zookeeper技术简介

                    最近的项目中使用到了Zookeeper、Kafka以及Storm。仔细研究了一下,觉得这几个开源项目对于搞分布式的人来说是非常有用的,所以想把自己的一点心得体会总结一下,希望能对大家有所帮助。 首先从Zookeeper开始。这一节主要是介绍一下Zookeeper的背景和架构 zookeeper是一个开源分布式的服务,它提供了分布式协作,分布式同步,配置管理等功能. 它实现的功能与google的ch
                

Zookeeper部署与基本使用

                    ZooKeeper服务器是用Java创建的,它在JVM上运行。你需要使用JDK 6或更高版本。
                

zookeeper安装实录

                    zookeeper安装实录,根据学习需求,及结合个人的实际情况,先把zookeeper搭起来,以后再慢慢梳理
                

java API 操作 Zookeeper

                    ZooKeeper有一个绑定Java和C的官方API。Zookeeper社区为大多数语言(.NET,python等)提供非官方API。使用ZooKeeper API,应用程序可以连接,交互,操作数据,协调,最后断开与ZooKeeper集合的连接。ZooKeeper API具有丰富的功能,以简单和安全的方式获得ZooKeeper集合的所有功能。ZooKeeper API提供同步和异步方法。
                

Zookeeper集群配置

                    在我完成了Hadoop集群配置以后(http://www.linuxidc.com/Linux/2013-06/86347.htm)就需要安装zookeeper 每个电脑做相同的操作 安装 cd /usr/local/src tar zxvf zookeeper-3.4.5.tar.gz mv zookeeper-3.4.5 /usr/local/zookeeper chown -R hadoop
                

storm+kestrel+zookeeper

                    storm+kestrel+zookeeper       环境:    2台服务器:192.168.1.166         192.168.1.167    系统:centos 5.6        部署:192.168.1.166:ui,nimbus,supervisor       192.168.1.167:supervisor,kestrel,zookeeper          因
                

Apache Zookeeper入门1

                    作者: H.E. | 您可以转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明 网址:http://www.javabloger.com/article/apache-zookeeper-hadoop.html    口水:Zookeeper是我目前接触过Apache开源系统中比较复杂的一个产品,要搞清楚这个东东里面的运作关系还真不是一时半会可以搞定的事,本人目前只略知皮毛之术。 Zo
                

安装最新版zookeeper

                    zookeeper 3.4.5的官网:http://zookeeper.apache.org/doc/r3.4.5/ 下载zookeeper-3.4.5.tar.gz 创建软链接: >sudo ln -s /Users/carl/tool/zookeeper-3.4.5 /opt/zookeeper-3.4.5 >sudo ln -s /opt/zookeeper-3.4.5 /opt
                

Zookeeper CLI 命令行操作

                    ZooKeeper命令行界面(CLI)用于与ZooKeeper集合进行交互以进行开发。它有助于调试和解决不同的选项。
                

Apache zookeeper 基本概念

                    Apache zookeeper 是什么    当使用Hadoop Cloud时我们看到了zookeeper,当使用Solr Cloud时我们再次看到了zookeeper,zookeeper为神马一次又一次地与云接下了不解之缘?其实我们每个人对云(Cloud)的概念学习从幼儿园就开始了,先学习一首儿歌《蚂蚁搬豆》,歌词如下: 一只蚂蚁在洞口  找到一粒豆  用尽力气搬不动,只是连摇头  左思右想好
                

storm搭建(1)zookeeper搭建

                    storm集群的安装我用了三台的虚拟机,ip分别是192.168.9.202和203和204,其中主机是202,两台分机的ip是203和204,之前两台机器的搭建已经完成,这次安装的环境是在204机器上。 把zookeeper-3.3.5.tar.gz放在home文件夹下,   给文件加入权限    chmod +x zookeeper-3.3.5.tar.gz    给文件进行解压    tar