Zookeeper深度解析(概念、原理机制、应用场景)

一、什么是Zookeeper?

       Zookeeper是一个高效的分布式一致性协调服务,可以提供配置信息管理、命名、分布式同步、集群管理、数据库切换等服务。它不适合用来存储大量信息,可以用来存储一些配置、发布与订阅等少量信息。(Zookeeper 作为 Hadoop 项目中的一个子项目,是 Hadoop 集群管理的一个必不可少的模块,它主要用来控制集群中的数据,如它管理 Hadoop 集群中的 NameNode,还有 Hbase 中 Master Election、Server 之间状态同步等。)

二、Zookeeper设计目的

  1. 最终一致性:client不论连接到哪个Server,展示给它都是同一个视图,这是zookeeper最重要的性能。
  2. 可靠性:具有简单、健壮、良好的性能,如果消息m被到一台服务器接受,那么它将被所有的服务器接受。
  3. 实时性:Zookeeper保证客户端将在一个时间间隔范围内获得服务器的更新信息,或者服务器失效的信息。但由于网络延时等原因,Zookeeper不能保证两个客户端能同时得到刚更新的数据,如果需要最新数据,应该在读数据之前调用sync()接口。
  4. 等待无关(wait-free):慢的或者失效的client不得干预快速的client的请求,使得每个client都能有效的等待。
  5. 原子性:更新只能成功或者失败,没有中间状态。
  6. 顺序性:包括全局有序和偏序两种:全局有序是指如果在一台服务器上消息a在消息b前发布,则在所有Server上消息a都将在消息b前被发布;偏序是指如果一个消息b在消息a后被同一个发送者发布,a必将排在b前面。

三、Zookeeper的安装

  1. 前置环境:已安装好jdk
  2. 下载zookeeper的安装包:官网下载,下载和解压到/usr/local中
  3. 创建数据、日志文件夹:
    mkdir  /usr/local/zookeeper/data
    mkdir  /usr/local/zookeeper/log
  4. 设置核心配置文件:
    #打开核心配置
    mv /usr/local/zookeeper/conf/zoo_sample.cfg  /usr/local/zookeeper/conf/zoo.cfg
    
    #设置核心配置文件
    vim /usr/local/zookeeper/conf/zoo.cfg
    
    #填入如下配置
    dataDir=/usr/local/zookeeper/data
    dataLogDir=/usr/local/zookeeper/log
  5. 启动zookeeper
    cd /usr/local/zookeeper/bin
    
    #启动zookeeper
    ./zkServer.sh start

三、Zookeeper的文件系统

文件系统的数据结构
zookeeper是用一个树形结构来进行数据存储管理的。它不适合用来存储大量信息,可以用来存储一些配置、发布与订阅等少量信息。如下图所示:

文件系统的节点(znode)

什么是znode?
       每个子目录项如 NameService 都被称作为znode,和文件系统一样,我们能够自由的增加、删除znode,在一个znode下增加、删除子znode,每个znode都是可以存储数据的。

znode的分类

  • persistent-持久化目录节点:持久节点就是节点被创建后会一直存在服务器,直到删除操作主动清除,这种节点也是最常见的类型。
  • persistent_sequential-持久化顺序编号目录节点:持久顺序节点就是有顺序的持久节点,节点特性和持久节点是一样的,只是额外特性表现在顺
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值