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

ZooKeeper的作用(转)

 
阅读更多

什么是Zookeeper,Zookeeper的作用是什么,它与NameNode及HMaster如何协作?在没有接触Zookeeper的同学,或许会有这些疑问。这里给大家总结一下。

一、什么是Zookeeper

ZooKeeper 顾名思义 动物园管理员,他是拿来管大象(Hadoop) 、 蜜蜂(Hive) 、 小猪(Pig)  的管理员, Apache Hbase和 Apache Solr 以及LinkedIn sensei  等项目中都采用到了 Zookeeper。ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,ZooKeeper是以Fast Paxos算法为基础,实现同步服务,配置维护和命名服务等分布式应用。



上面的解释感觉还不够,太官方了。Zookeeper 从程序员的角度来讲可以理解为Hadoop的整体监控系统。如果namenode,HMaster宕机后,这时候Zookeeper 的重新选出leader。这是它最大的作用所在。下面详细介绍zookeeper的作用




二、zookeeper的作用

1.Zookeeper加强集群稳定性
Zookeeper通过一种和文件系统很像的层级命名空间来让分布式进程互相协同工作。这些命名空间由一系列数据寄存器组 成,我们也叫这些数据寄存器为znodes。这些znodes就有点像是文件系统中的文件和文件夹。和文件系统不一样的是,文件系统的文件是存储在存储区 上的,而zookeeper的数据是存储在内存上的。同时,这就意味着zookeeper有着高吞吐和低延迟。


Zookeeper实现了高性能,高可靠性,和有序的访问。高性能保证了zookeeper能应用在大型的分布式系统上。高可靠性保证它不会由于单一节点的故障而造成任何问题。有序的访问能保证客户端可以实现较为复杂的同步操作。


2.Zookeeper加强集群持续性
ZooKeeper Service
<ignore_js_op>





组成Zookeeper的各个服务器必须要能相互通信。他们在内存中保存了服务器状态,也保存了操作的日志,并且持久化快照。只要大多数的服务器是可用的,那么Zookeeper就是可用的。


客户端连接到一个Zookeeper服务器,并且维持TCP连接。并且发送请求,获取回复,获取事件,并且发送连接信号。如果这个TCP连接断掉了,那么客户端可以连接另外一个服务器。


Zookeeper保证集群有序性
Zookeeper使用数字来对每一个更新进行标记。这样能保证Zookeeper交互的有序。后续的操作可以根据这个顺序实现诸如同步操作这样更高更抽象的服务。


Zookeeper保证集群高效
Zookeeper的高效更表现在以读为主的系统上。Zookeeper可以在千台服务器组成的读写比例大约为10:1的分布系统上表现优异。


数据结构和分等级的命名空间
Zookeeper的命名空间的结构和文件系统很像。一个名字和文件一样使用/的路径表现,zookeeper的每个节点都是被路径唯一标识


三、zookeeper在Hadoop及hbase中具体作用
Hadoop有NameNode,HBase有HMaster,为什么还需要zookeeper,下面给大家通过例子给大家介绍。
一个Zookeeper的集群中,3个Zookeeper节点.一个leader,两个follower的情况下,停掉leader,然后两个follower选举出一个leader.获取的数据不变.我想Zookeeper能够帮助Hadoop做到:

Hadoop,使用Zookeeper的事件处理确保整个集群只有一个NameNode,存储配置信息等.
HBase,使用Zookeeper的事件处理确保整个集群只有一个HMaster,察觉HRegionServer联机和宕机,存储访问控制列表等.

分享到:
评论

相关推荐

    zookeeper连接工具

    4. **Qt库的作用** - **GUI界面**: Qt5系列的DLL文件负责构建和展示连接工具的用户界面,如窗口、按钮、列表等。 - **网络通信**: Qt5WebKit.dll可能用于处理HTTP或HTTPS请求,用于与Zookeeper服务器的交互。 - *...

    Kafka和Zookeeper集群搭建

    在这个主题中,我们将深入探讨如何搭建Kafka和Zookeeper集群,以及这两个组件在实际应用中的作用。 首先,让我们了解一下Zookeeper。Zookeeper是Apache Hadoop项目的一个子项目,它为分布式应用程序提供一致性服务...

    Hadoop、HBase、Hive、Pig、Zookeeper资料整理

    标题 "Hadoop、HBase、Hive、Pig、Zookeeper资料整理" 涵盖了大数据处理领域中几个核心的开源项目,这些项目在分布式计算、数据存储和管理方面发挥着重要作用。以下是对这些技术的详细介绍: 1. **Hadoop**:Hadoop...

    zookeeper 图形管理工具

    在实际工作中,无论是开发调试还是系统运维,都能发挥极大的作用。文件名为"zkui"的压缩包很可能包含了这个图形管理工具的安装程序或者源代码,使用者只需按照指示进行安装和配置,即可开始享受更为友好的Zookeeper...

    java zookeeper kafka 日志处理

    Java、Zookeeper和Kafka是大数据处理领域中的关键组件,它们在日志处理和存储方面发挥着重要作用。这里我们将深入探讨这些技术如何协同工作,以及如何将日志数据存储到MySQL数据库。 首先,Java作为广泛使用的编程...

    Zookeeper实现简单的分布式RPC框架

    首先,我们需要理解Zookeeper的核心概念及其在分布式系统中的作用。 Zookeeper是由Apache基金会开发的一个开源项目,它提供了一种高效、可靠的分布式协调服务。Zookeeper的主要功能包括命名服务、配置管理、集群...

    apache-zookeeper-3.8.1-bin.tar.gz

    具体作用如下: 1. 集群选举:Kafka 使用ZooKeeper 进行Controller选举,Controller负责处理分区 Leader 的选举和Brokers的增删。 2. 主题和分区元数据管理:ZooKeeper 存储了所有主题(Topic)和分区(Partition...

    dubbo+spring+zookeeper基础环境

    让我们深入了解一下这三个核心部分及其相互作用。 Dubbo是一个由阿里巴巴开源的高性能Java RPC框架,它使得服务提供者和服务消费者之间能够进行透明的远程调用。Dubbo的核心功能包括服务发布、服务发现、负载均衡和...

    第六章:项目:Marathon+Mesos+Zookeeper+Docker实战1

    在本文中,我们将深入探讨“第六章:项目:Marathon+Mesos+Zookeeper+Docker实战1”的核心知识点,主要关注Apache Mesos、Zookeeper以及它们在分布式系统中的作用。 首先,Apache Mesos是一个强大的集群管理系统,...

    Test_Storm_0_java_begun6u4_zookeeper_storm_apachestorm_

    3. Java在开发Storm应用中的作用。 4. Zookeeper在Storm集群中的角色和功能。 5. 如何搭建和管理Storm集群。 6. 实时数据处理的实例,如WordCount拓扑。 通过学习这些内容,开发者将能够理解和运用Apache Storm进行...

    hadoop2.7+hbase1.0+hive1.2+zookeeper3.4.6

    在探讨Hadoop2.7.1、HBase1.0、Hive1.2以及ZooKeeper3.4.6的安装和配置时,我们首先需要了解这些组件的基本功能以及...熟练掌握这些安装配置知识,对后续进行大数据集群的维护、优化和故障排除工作具有基础性的作用。

    dubbo-pro.zip

    本文将深入探讨Dubbo和Zookeeper的核心概念、工作原理以及它们之间的协同作用。 首先,让我们了解一下Dubbo。Dubbo是阿里巴巴开源的一款高性能、轻量级的服务治理框架,它专注于服务调用、服务注册与发现、负载均衡...

    zkfsm:ZooKeeper 上的简单分布式有限状态机

    1. **ZooKeeper**:理解ZooKeeper的基本概念、数据模型(包括节点、 watches、会话等)、API,以及其在分布式协调中的作用。 2. **分布式有限状态机**:了解有限状态机的概念,如何在分布式环境中实现状态转换,...

    Zoo Admin - 在线 zookeeper管理工具,基于Jfinal+Beetl开发。.zip

    以下是开发工具的主要作用: 代码编写与编辑: 提供集成开发环境(IDE),如Visual Studio、Eclipse、Android Studio和Sublime Text等,这些工具集成了文本编辑器,支持语法高亮、自动补全、代码片段管理和版本...

    netty-rpc-master.zip

    本文将详细探讨这三个关键组件在RPC框架中的作用及其整合方式。 首先,让我们从Netty开始。Netty是Java领域的一款高性能、异步事件驱动的网络应用框架,常用于构建高效的TCP、UDP和HTTP服务器。它提供了一套灵活且...

    自定义rpc框架

    NIO(Non-blocking I/O)在RPC框架中的作用主要体现在提高服务器端的并发处理能力。传统的BIO(Blocking I/O)模型中,每个连接都需要一个线程来处理,当连接数量增加时,会消耗大量系统资源。而NIO采用通道...

    PyPI 官网下载 | ofx2xlsmbr-0.72.tar.gz

    如果`ofx2xlsmbr`与ZooKeeper相关,它可能在处理大规模、分布式环境下的OFX数据转换时发挥作用。同时,“分布式”和“云原生”标签暗示这个库可能设计用于处理分布式系统或云环境中的数据,具有高可用性和可扩展性。...

    kafka +zookeper 官方包kafka_2.11-2.3.0.zip

    Zookeeper在Kafka中起到了关键的协调作用,例如管理Broker的元数据、分配Partition和Offset等。 在安装Kafka之前,需要先安装ZooKeeper。ZooKeeper的配置文件通常位于conf目录下,主要修改`zoo.cfg`,设置服务器ID...

    PyPI 官网下载 | kiwisolver-1.3.0.tar.gz

    综上所述,kiwisolver-1.3.0作为Python图形渲染领域的关键工具,其在matplotlib和其他相关库中的作用不容忽视。同时,了解并理解像Zookeeper这样的分布式服务对于理解和优化云原生环境下的应用程序至关重要。通过...

    canal 和 zkui

    在IT行业中,数据同步是一个常见的需求,而Canal和ZKUI是两个在此领域中发挥重要作用的工具。Canal是阿里巴巴开源的一个数据库实时变更数据抓取工具,主要用于实现数据库之间的实时数据同步。ZKUI(Zookeeper UI)则...

Global site tag (gtag.js) - Google Analytics