浅谈zookeeper的在hbase集群中的作用

一,什么是zookeeper?

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

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

二、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中具体作用

1,Hadoop有NameNode,HBase有HMaster,为什么还需要zookeeper,下面给大家通过例子给大家介绍。

一个Zookeeper的集群中,3个Zookeeper节点.一个leader,两个follower的情况下,停掉leader,然后两个follower选举出一个leader.获取的数据不变.我想Zookeeper能够帮助Hadoop做到:

Hadoop,使用Zookeeper的事件处理确保整个集群只有一个NameNode,存储配置信息等.

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

2,hbase regionserver 向zookeeper注册,提供hbase regionserver状态信息(是否在线)

3,hmaster启动时候会将hbase 系统表-ROOT- 加载到 zookeeper cluster,通过zookeeper cluster可以获取当前系统表.META.的存储所对应的regionserver信息。

HMaster主要作用在于,通过HMaster维护系统表-ROOT-,.META.,记录regionserver所对应region变化信息。此外还负责监控处理当前hbase cluster中regionserver状态变化信息。

hbase regionserver则用于多个/单个维护region。

region则对应为hbase数据表的表分区数据维护。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-13 11:55:51

浅谈zookeeper的在hbase集群中的作用的相关文章

浅谈RFID技术在电子巡更中的作用

"电子巡更机",很多人都不太认识这个是什么? 那么对于电子技术专业的人来说,如果,说起"RFID" 可能就会认识.今天我们来聊一聊,基于RFID技术的智能巡更系统.我们都知道读卡技术中,基于RFID(无线射频技术)它是有着本身的特殊性,它能通过识别线圈芯片,通过无线识别来探测到相应的物体.最常见的应用是在我们熟知的图书馆,门禁系统,食品安全溯源等.它通过把数据从附着在物品上的标签上传送出去,以自动辨识与追踪该物品.某些标签在识别时从识别器发出的电磁场中就可以得到能量

基于外部ZooKeeper的GlusterFS作为分布式文件系统的完全分布式HBase集群安装指南

(WJW)基于外部ZooKeeper的GlusterFS作为分布式文件系统的完全分布式HBase集群安装指南 [X] 前提条件 服务器列表: 192.168.1.84 hbase84 #hbase-master 192.168.1.85 hbase85 #hbase-regionserver,zookeeper 192.168.1.86 hbase86 #hbase-regionserver,zookeeper 192.168.1.87 hbase87 #hbase-regionserver,z

Kubernetes+Flannel 环境中部署HBase集群

注:目前方案不满足加入新节点(master节点或regionserver节点)而不更改已运行节点的参数的需求,具体讨论见第六部分. 一.背景知识 先看下HBase的组成: Master:Master主要负责管理RegionServer集群,如负载均衡及资源分配等,它本身也可以以集群方式运行,但同一时刻只有一个master处于激活状态.当工作中的master宕掉后,zookeeper会切换到其它备选的master上. RegionServer:负责具体数据块的读写操作. ZooKeeper:负责集

HBase集群数据迁移方案

一.静态迁移方案 1.在hbase停止的状态下进行数据的迁移. 2.采用Hadoop distcp方式,将以上目录的内容,迁移到另一个集群. 使用add_table.rb进行恢复. 缺点:不太灵活 二.动态迁移方案 -Replication备份方案 -CopyTable方案 -Export and Import方案 1.Replication备份方案 修改hbase-site.xml配置,增加hbase.replication属性, 增加表属性REPLICATION_SCOPE属性. add_p

Hadoop2.0集群、Hbase集群、Zookeeper集群、Hive工具、Sqoop工具、Flume工具搭建总结

实验开发环境所用软件: [[email protected] local]# ll total 320576 -rw-r--r-- 1 root root 52550402 Mar 6 10:34 apache-flume-1.6.0-bin.tar.gz drwxr-xr-x 7 root root 4096 Jul 15 10:46 flume drwxr-xr-x. 11 root root 4096 Jul 10 21:04 hadoop -rw-r--r--. 1 root root

Zookeeper集群安装(HBase集群已安装好)

HBase集群已安装好,在使用了其内置的zookeeper集群出现问题无法解决后改用自己安装的zookeeper集群,HBase集群可成功启动. 1.在/home/instal目录下,解压zookeeper-3.4.6到该目录下 tar  -zxvf  zookeeper-3.4.6.tar.gz  -C /home/instal 2.复制zookeeper-3.4.6/conf下的zoo_sample.cfg,并且重命名为zoo.cfg cp  zoo_sample.cfg  zoo.cfg

HBase集群变更zookeeper问题

在用华为的hindex-0.94.8时,出现HMaster启动后很短时间内自动关闭的情况,网上查询说是zookeeper的原因,在万般整修无果舍弃了其内部自带的zookeeper集群,自己安装了zookeeper-3.4.6重启后可以正常使用集群.但是出现一个问题,之前的HBase数据库中的表可以显示但是其中的数据在客户端查询的时候出现org.apache.hadoop.hbase.NotServingRegionException:的错误,网上查询资料得知HBase访问流程如下: 客户端cli

通过tarball形式安装HBASE Cluster(CDH5.0.2)——如何配置分布式集群中的zookeeper

集群安装总览参见这里 Zookeeper的配置 1,/etc/profile中加入zk的路径设置,见上面背景说明. 2,进入~/zk/conf目录,复制zoo_sample.cfg为zoo.cfg vim zoo.conf tickTime=2000 initLimit=10 syncLimit=5 dataDir=/home/hadoop/hdfs/zk/data dataLogDir=/home/hadoop/hdfs/zk/log clientPort=2181 server.21=zk1

Mesos+Zookeeper+Marathon+Docker分布式集群管理最佳实践

参考赵班长的unixhot以及马亮blog 笔者QQ:572891887 Linux架构交流群:471443208 1.1Mesos简介 Mesos是Apache下的开源分布式资源管理框架,它被称为分布式系统的内核.Mesos最初是由加州大学伯克利分校的AMPLab开发,后在Twitter得到广泛使用. Mesos-Master:主要负责管理各个framework和slave,并将slave上的资源分配给各个framework. Mesos-Slave:负责管理本节点上的各个mesos-task