栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Zookeeper的作用及命令行操作

Zookeeper的作用及命令行操作

Zookeeper的作用及命令行操作

Zookeeper是什么

1、ZooKeeper由雅虎研究院开发,是Google Chubby的开源实现,后来托管到Apache,于2010年11月正式成为Apache的顶级项目。

2、ZooKeeper是一个经典的分布式数据一致性解决方案(基于Paxos算法),致力于为分布式应用提供一个高性能、高可用,且具有严格顺序访问控制能力的分布式协调服务。

3、Zookeeper的核心是原子广播,这个机制保证了各个server之间的同步。实现这个机制的协议叫做Zab协议。Zab协议有两种模式,它们分别是恢复模式和广播模式

二、zookeeper做什么

1. 最终一致性:client不论连接到哪个Server,展示给它都是同一个视图

2.可靠性:具有简单、健壮、良好的性能,如果消息被到一台服务器接受,那么它将被所有的服务器接受。

3 .实时性: 保证客户端将在一个时间间隔范围内获得服务器的更新信息

4、等待无关(wait-free):慢的或者失效的client不得干预快速的client的请求,使得每个client都能有效的等待。

5.原子性:更新只能成功或者失败,没有中间状态。

6 .顺序性:包括全局有序和偏序两种:全局有序是指如果在一台服务器上消息a在消息b前发布,则在所有Server上消息a都将在消息b前被发布;偏序是指如果一个消息b在消息a后被同一个发送者发布,a必将排在b前面

三、zookeeper的作用

1、 命名服务

 在zookeeper的文件系统里创建一个目录,即有唯一的path。通过path即能管理上层

2、配置管理

  将配置信息放到zookeeper的目录下,然后所有相关应用程序对这个目录节点进行监听,一旦配置信息发生变化,每个应用程序就会收到 Zookeeper 的通知,相应跟着变化。

3、集群管理

主负责:机器退出和加入、选举master

机器加入会创建临时目录节点,然后监听父目录节点的子节点变化消息。一旦有机器挂掉,该机器与 zookeeper的连接断开,其所创建的临时目录节点被删除,所有其他机器都收到通知

 

4、分布式锁

保障了zookeeper的一致性文件系统

锁服务可以分为两类,一个是保持独占,另一个是控制时序。

5、队列管理

两种类型的队列:

1、 同步队列,当一个队列的成员都聚齐时,这个队列才可用,否则一直等待所有成员到达。

2、队列按照 FIFO 方式进行入队和出队操作。

四、ZooKeeper服务架构 - 容灾能力

ZooKeeper能够完成选举即能够正常对外提供服务。

ZooKeeper选举时,当某一个实例获得了半数以上的票数时,则变为leader。

对于n个实例的服务,n可能为奇数或偶数。

n为奇数时,假定n=2*x+1 ,则成为leader的节点需获得x+1票,容灾能力为x。

n为偶数时,假定 n = 2*x+2 ,则成为leader的节点需要获得x+2票 (大于一半),容灾能力为x。

五、Zookeeper选举流程

目前有5台服务器,每台服务器均没有数据,它们的编号分别是1,2,3,4,5,按编号依次启动,它们的选择举过程如下:

1、服务器1启动,给自己投票,然后发投票信息,由于其它机器还没有启动所以它收不到反馈信息,服务器1的状态一直属于Looking(选举状态)。

2、服务器2启动,给自己投票,同时与之前启动的服务器1交换结果,由于服务器2的编号大所以服务器2胜出,但此时投票数没有大于半数,所以两个服务器的状态依然是LOOKING。

3、服务器3启动,给自己投票,同时与之前启动的服务器1,2交换信息,由于服务器3的编号最大所以服务器3胜出,此时投票数正好大于半数,所以服务器3成为领导者,服务器1,2成为小弟。

4、服务器4启动,给自己投票,同时与之前启动的服务器1,2,3交换信息,尽管服务器4的编号大,但之前服务器3已经胜出,所以服务器4只能成为小弟。

5、服务器5启动,后面的逻辑同服务器4成为小弟。

六、ZooKeeper客户端常用命令使用

  • 调用ZooKeeper客户端 :

    zkCli.sh -server host1:24002 2>&1|tee /home/username/.jline

  • 创建节点:create /node
  • 列出节点子节点: ls /node
  • 创建节点数据: set /node data
  • 获取节点数据: get /node
  • 删除节点:delete /node
  • 删除节点及所有子节点: deleteall /node
  • sync命令可强制同步节点数据  sync /node
  • 查看当前结点权限:  getAcl  /node

    得到的结果是world,anyone:cdrwa,说明是具有所有权限

    解析如下:

    (1)ZK的节点有5种操作权限:

    缩写 crdwa 

    CREATE:创建子节点 

    READ:获取节点、子节点 

    WRITE:设置节点数据 

    DELETE:删除子节点 

    ADMIN:设置权限

    (2)身份的认证有4种方式:

    1  world:默认方式,相当于全世界都能访问

    2  auth:代表已经认证通过的用户(cli中通过addauth digest                 user:pwd 来添加当前上下文中的授权用户)

    3  digest:即用户名:密码这种方式认证,这也是业务系统中最常用

    4  ip:使用Ip地址认证

  • 转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/706624.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号