zookeeper基本概念和功能

2019/2/19 星期二

zookeeper基本概念和功能

zookeeper是hadoop生态圈里面重要的底层的框架,主要为上层的框架提供分布式协调服务的。

hadoop-spof 问题及HA 解决思路
引入集群协调服务框架的必要性

zookeeper 简介
ZooKeeper 是一个分布式应用程序协调服务,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。
目前zookeeper 被广泛应用于hadoop 生态体系中各种框架的分布式协调,我们也可以利用zookeeper 来简化分布式应用开发

Zk简介
1、zookeeper翻译成英文叫动物园管理员 动物员管理员的作用是什么呢??
2、让大象(hadoop),蜂巢(hive) ,猪(pig)能够更友好的在一起,以上几种都是hadoop的组件
3、ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务
4、zookeeper其实就是一个软件,所有安装了zookeeper的服务器都叫?zookeeper server
5、zookeeper server 还分为两类角色,由 leader 和 follower 组成,如果leader挂掉,会有选举机制,follower直接替换leader ,leader只有一个,剩下的都是follower
6、zookeeper 的所有服务器中的所有数据结构(树形结构)是完全相同的,就是说我搭建一个zookeeper集群,集群里面所有机器的数据是一样的
7、数据是树形结构的,与linux目录结构是一样一样的,zk的每个数据目录就是一个znode
8、我需要运行几个ZooKeeper? 你运行一个zookeeper也是可以的,但是在生产环境中,你最好部署3,5,7个节点。部署的越多,可靠性就越高,当然最好是部署奇数个,偶数个不是不可以的,但是zookeeper集群是以宕机个数过半才会让整个集群宕机的,所以奇数个集群更佳

zk对hdfs HA高可用集群的作用?
1、qjn集群(edit日志管理系统 HA的)需要zk集群去实现,协调服务。
2、namenode谁是active谁是standay 记录在zk中
3、zkfc就是基于zk实现的失败切换控制器

zk对yarn 集群HA的作用?
1、谁是recoursemanager active谁是从的RM 记录在zk中
基本同hdfs中在作用一样

zk对hbase集群HA的作用?
1、谁是hmaster记录在zk中
2、zk留存了服务器健康状态与是否可用的信息,并提供服务器故障通知,通过zookeeper cluster可以获取当前系统表.META.的存储所对应的regionserver信息。
3、zk用consensus协议来保障共享状态,需要注意的是,一份consensus协议需要3~5个机器参与(奇数个)。

Zk对kafka集群的作用?
1.当一个kafka broker启动后,首先会向zookeeper注册自己的节点信息(临时znode),同时当broker和zookeeper断开连接时,此znode也会被删除.
2.其中partition leader的位置(host:port)注册在zookeeper中

小结:
Zookeeper(第三方) 可以实现的分布式协调服务包括:
1、统一名称服务 //如果把每台服务器sever比作一台一台的资源的,客户端拿到的就是名称服务资源。
2、配置管理
3、分布式共享锁 //比如在分布式的每台服务器上都需要去修改一个共享资源,这个时候会产生冲突,
4、集群节点状态协调(负载均衡/主从协调)//服务器集群动态感知及失败切换 zkfc
小结:这上面4点功能并不是zk本身自带的功能,而是,这些功能可以利用zk来实现。
zookeeper的功能:
也就是第三方,要你查数据的时候,可以返还给客户端,所以具体他是不知道干什么的
(最重要的功能也就是替客户端保管数据,为客户提供数据的监听服务)

内部自己设计了自己分布式内存数据库(用于保管数据)

ZooKeeper 数据模型和层次命名空间
提供的命名空间与标准的文件系统非常相似。一个名称是由通过斜线分隔开的路径名序列所组成的。ZooKeeper 中的每一个节点是都通过路径来识别。

ZooKeeper 中的数据节点:
每一个节点称为znode,通过路径来访问
每一个znode 维护着:数据、stat 数据结构(ACL、时间戳及版本号)
znode 维护的数据主要是用于存储协调的数据,如状态、配置、位置等信息,每个节点存储的数据量很小,KB 级别
znode 的数据更新后,版本号等控制信息也会更新(增加)
znode 还具有原子性操作的特点:写--全部替换,读--全部
znode 有永久节点和临时节点之分:临时节点指创建它的session 一结束,该节点即被zookeeper 删除;

zk 性能:
Zookeeper 的读写速度非常快(基于内存数据库),并且读的速度要比写的速度更快。
顺序一致性:客户端的更新顺序与它们被发送的顺序相一致。
原子性:更新操作要么成功要么失败,没有第三种结果。
单系统镜像:无论客户端连接到哪一个服务器,客户端将看到相同的
ZooKeeper 视图。
可靠性:一旦一个更新操作被应用,那么在客户端再次更新它之前,它的值将不会改变。这个保证将会产生下面两种结果:
1 .如果客户端成功地获得了正确的返回代码,那么说明更新已经成功。如果不能够获得返回代码(由于通信错误、超时等等),那么客户端将不知道更新操作是否生效。
2 .当从故障恢复的时候,任何客户端能够看到的执行成功的更新操作将不会被回滚。
实时性:在特定的一段时间内,客户端看到的系统需要被保证是实时的。在此时间段内,任何系统的改变将被客户端看到,或者被客户端侦测到。给予这些一致性保证,ZooKeeper 更高级功能的设计与实现将会变得非常容易,
例如: leader 选举、队列以及可撤销锁等机制的实现。

zookeeper 集群组件:
同一个zookeeper服务下的server 有三种,一种是leader server,另一种是follower server,还有一种叫observer server;
leader特殊之处在于它有决定权,具有Request Processor(observer server 与follower server 的区别就在于不参与leader 选举)
zk中内部leader选举的算法:paxos

如果客户端修改zk集群中的数据的时候,首先集群中会找到leader 然后在leader上修改本地数据,然后每台follower会去同步信息

zk中的端口意思
(其中2181代表:客户端与服务器连接所用的端口)
(其中2888代表:leader与follower之间的通信用的端口)
(其中3888代表:follower之间选举投票用的端口)

原文地址:http://blog.51cto.com/12445535/2351885

时间: 2024-08-28 23:32:20

zookeeper基本概念和功能的相关文章

1、ZooKeeper 基本概念、使用方法、实践场景

ZooKeeper 基本概念 ZooKeeper 是面向分布式应用的协调服务,其实现了树形结构的数据模型(与文件系统类似),并且提供了简洁的编程原语.ZooKeeper 能够作为基础,用于构建更高层级的分布式服务. ZooKeeper 是分布式的,具备高性能.高可用的特点. 如上架构图所示,ZooKeeper 集群中包括: Leader:提供 “读” & “写” 服务(Leader 由集群全部机器通过“Leader 选举”产生). Follower:集群中非 “Leader” 的其他节点. 集群

zookeeper基本概念及原理

zookeeper是一个分布式的,开源的分布式应用程序,该程序主要用于管理其他分布式应用程序.其他分布式应用程序可以基于zookeeper实现数据同步,配置维护和命名服务等等.zookeeper是Hadoop的一个子项目,由于在原有的分布式应用系统中,工程师不能很好的使用锁机制,或者基于消息的协调机制不适合在某些应用中使用,因此需要一种可靠的,可扩展的,分布式的,可配置的协调机制来统一系统的状态,Zookeeper的作用就在于此.本文简单介绍Zookeeper的相关名词概念,然后简单介绍其工作原

ZooKeeper分布式过程协同技术详解1——ZooKeeper的概念和基础

简介 分布式系统和应用,不仅能提供更强的计算能力,还能为我们提供更好的容灾性和扩展性. ZooKeeper是Google的Chubby项目的开源实现,它曾经作为Hadoop的子项目,在大数据领域得到广泛应用 ZooKeeper以Fast Paxos算法为基础,同时为了解决活锁问题,对Fast Paxos算法进行了优化,因此也可以广泛用于大数据之外的其他分布式系统,为大型分布式系统提供可靠的协作处理功能. Apache ZooKeeper旨在减轻构建健壮的分布式系统的任务.ZooKeeper基于分

ZooKeeper 系列(一)—— ZooKeeper核心概念详解

一.Zookeeper简介 二.Zookeeper设计目标 三.核心概念 ????????3.1 集群角色 ????????3.2 会话 ????????3.3 数据节点 ????????3.4 节点信息 ????????3.5 Watcher ????????3.6 ACL 四.ZAB协议 ????????4.1 ZAB协议与数据一致性 ????????4.2 ZAB协议的内容 五.Zookeeper的典型应用场景 ????????5.1数据的发布/订阅 ????????5.2 命名服务 ??

二:ZooKeeper术语概念

zookeeper的基本概念介绍Zookeeper的几个核心概念,这些概念贯穿于本书之后对ZooKeeper更深入的讲解,因此有必要预先了解这些概念. ●集群角色一:集群角色          通常在分布式系统中,构成一个集群的每一台机器都有自己的角色,最典型的集群模式就是Master/Slave模式(主备模式).在这种模式中,我们把能够处理所有写操作的机器称为Master机器,把所有通过异步复制方式获取最新数据,并提供读服务的机器称为Salve机器.        而在ZooKeeper中,这

Zookeeper简单概念介绍

过去,每个应用都是一个CPU.一个主机上的单一系统.然而今天,随着大数据和云计算时代的到来,不论什么相互独立的程序都可以运行在多个计算机上.然而面临的问题是,协调这些集群的系统比在单一主机上要复杂的多.因此对于开发人员来说.非常难在集中精力来关注他们的系统逻辑上,大部分的时间都花费在了协调这些集群系统上.Zookeeper的出现就攻克了这个问题,让开发人员可以集中精力在系统逻辑上,而免于协调这些集群计算机的运行情况.Zookeeper暴漏了一套简单的额API,可以让开发人员实现公共须要协调的任务

zookeeper 基本概念

The ZooKeeper Data Model ZooKeeper has a hierarchal name space, much like a distributed file system. The only difference is that each node in the namespace can have data associated with it as well as children. It is like having a file system that all

Zookeeper基础概念和原理

1.zookeeper概念介绍 在介绍ZooKeeper之前,先来介绍一下分布式协调技术,所谓分布式协调技术主要是用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种共享资源,防止造成资源竞争(脑裂)的后果. 这里首先介绍下什么是分布式系统,所谓分布式系统就是在不同地域分布的多个服务器,共同组成的一个应用系统来为用户提供服务,在分布式系统中最重要的是进程的调度,这里假设有一个分布在三个地域的服务器组成的一个应用系统,在第一台机器上挂载了一个资源,然后这三个地域分布的应用进程都要竞

Paxos分布式一致性算法简介和Apache ZooKeeper的概念映射

Paxos是一个基于消息传递的一致性算法,近几年被广泛应用于分布式计算中,Google的Chubby,Apache的Zookeeper都是基于它的理论来实现的,Paxos还被认为是到目前为止唯一的分布式一致性算法,其它的算法都是Paxos的改进或简化.Paxos只有在一个可信的计算环境中才能成立,这个环境是不会被入侵所破坏的. 由Leslie Lamport发明了Paxos算法,他目前供职于微软研究院.1998年在ACM Transactions on Computer Systems的<The