文档章节

什么是Zookeeper,Zookeeper的作用是什么,在Hadoop及hbase中具体作用是什么

varchard
 varchard
发布于 2016/11/27 10:33
字数 1006
阅读 45
收藏 1

一、什么是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
 





组成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,Zookeeper的作用是什么,在Hadoop及hbase中具体作用是什么
http://www.aboutyun.com/thread-6628-1-1.html
(出处: about云开发)
 

本文转载自:http://www.aboutyun.com/thread-6628-1-1.html

varchard
粉丝 6
博文 58
码字总数 19458
作品 0
程序员
私信 提问
Zookeeper介绍(28)

Zookeeper是保证数据在ZK集群中传递时事务一致性的. Zookeeper是含有一个文件系统,类似于Linux的文件系统。每一集目录结果都可以写数据。 Zookeeper作为Hadoop项目中的一个子项目,是Hadoo...

肖鋭
2014/03/23
127
0
ZooKeeper故障节点替换过程详解

作者介绍 一、环境描述 我的生产环境ZooKeeper 版本3.4.6,5个节点组成的ZooKeeper集群。ZooKeeper集群为一套8个节点的Hadoop集群和HBase 集群提供高可用保障。 二、问题描述 因为某些特殊原...

康壮
2017/05/25
0
0
hadoop2.x常用端口、定义方法及默认端口、hadoop1.X端口对比

问题导读: 1.DataNode的http服务的端口、ipc服务的端口分别是哪个? 2.NameNode的http服务的端口、ipc服务的端口分别是哪个? 3.journalnode的http服务的端口、ipc服务的端口分别是哪个? ...

我的代码不生虫
2017/10/19
30
0
大数据(HBase-应用场景、原理与基本架构)

Hbase概述 HBase是一个构建在HDFS上的分布式列存储系统; HBase是Apache Hadoop生态系统中的重要一员,主要用于海量结构化数据存储 从逻辑上讲, HBase将数据按照表、行和列进行存储。 Hbas...

这很耳东先生
06/25
126
0
hdfs+zookeeper+hbase分布式在k8s中部署

版权声明:本文为博主原创文章,转载请注明来源。开发合作联系luanpenguestc@sina.com https://blog.csdn.net/luanpeng825485697/article/details/81985602 1、背景知识 先看下HBase的组成:...

数据架构师
2018/08/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

cleanLastUpdated.bat

@echo offrem create by AnXiaole rem 这里写你的仓库路径set REPOSITORY_PATH=C:\Users\AnXiaole\.m2\repositoryrem 正在搜索...for /f "delims=" %%i in ('dir /b /s "%REPO......

安小乐
1分钟前
0
0
操作放大器的用法是什么?

  有区别   1、单级放大的倍数比较有限,一般在100倍以下。放大倍数很大的话,负反馈就比较浅,对于放大倍数的稳定性不利。假如需要放大倍数更高,就不得不动用多级放大电路了。单级放大...

仙溪
3分钟前
0
0
c++ 上传文件 curl

bool uploadFile(std::string url, std::string file, std::string auth) { boost::filesystem::path p(file); CURL *curl; CURLcode res; struct curl_httppost *for......

青黑
9分钟前
2
0
冒泡与插入排序的代码实现

// 冒泡排序,a 表示数组,n 表示数组大小public void bubbleSort(int[] a, int n) { if (n <= 1) return; for (int i = 0; i < n; ++i) { // 提前退出冒泡循环的标志位 ...

无名氏的程序员
12分钟前
3
0
centos7.6 +mhvtl1.6安装

以前的mhvtl都是在centos6.x,5.x上安装的mhvtl以前版本为1.4,现在最新的1.6出来,可以安装在centos7.6上,下面是安装过程: 1.安装基础包 centos7.6只要能上外网,默认是配置了yun源的,这些...

突突突酱
14分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部