ZooKeeper

作用:Zookeeper 可以用来保证数据在zk集群之间的数据的事务性一致(原子操作)。

介绍:Zookeeper 是 Google 的 Chubby一个开源的实现,是 Hadoop 的分布式协调服务

    它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。

特性:简单的、富有表现力的、具有高可用性、采用松耦合交互方式、是一个资源库。

如何搭建ZooKeeper服务器集群
2.1 ZooKeeper服务器集群规模不小于3个节点,要求各服务器之间系统时间要保持一致。
2.2 在hadoop0的/usr/local目录下,解压缩zookeeper-3.4.5.tar.gz(tar -zxvf zookeeper-3.4.5.tar.gz),
  设置环境变量vi /etc/profile
    export ZOOKEEPER_HOME=/usr/local/zk
    export PATH=.:$....:$ZOOKEEPER_HOME/bin:$.....
  环境变量设置好了,执行source /etc/profile
2.3 在conf目录下
    重命名: mv zoo_sample.cfg zoo.cfg
2.4 编辑该文件,执行vi zoo.cfg
    修改dataDir=/usr/local/zk/data
    新增server.0=hadoop0:2888:3888
      server.1=hadoop1:2888:3888
      server.2=hadoop2:2888:3888
2.5 创建文件夹mkdir /usr/local/zk/data
2.6 在data目录下,创建文件myid(vi myid),值为0
2.7 把zk目录复制到hadoop1和hadoop2中
      scp -r /usr/local/zk/ hadoop1:/usr/local/
      scp -r /usr/local/zk/ hadoop2:/usr/local/
  将hadoop0中的环境变量复制到hadoop1和hadoop2中
      scp /etc/profile hadoop1:/etc/
      scp /etc/profile hadoop2:/etc/
  环境变量复制好了以后,在hadoop1和hadoop2上都要执行source /etc/profile
2.8 把hadoop1中相应的myid的值改为1
    vi /usr/local/zk/data/myid 将里面的值改为1
  把hadoop2中相应的myid的值改为2
    vi /usr/local/zk/data/myid 将里面的值改为2
2.9 启动,在三个节点上分别执行命令zkServer.sh start
cd /usr/local/zk/bin
ls
zkServer.sh start
启动完了之后,在bin目录下多了一个zookeeper.out
2.10 检验,在三个节点上分别执行命令zkServer.sh status(可以看到MODE,谁是leader,谁是follower)

ZooKeeper的操作(只有shell操作,也可以用java操作)
在hadoop0下,执行zkCli.sh ,就进入到了ZooKeeper,可以在里面使用命令进行相关操作:
ls /
create /chaoren hadoop (/chaoren是path,hadoop是里面的data)
get /chaoren (可以查看到里面的data)

也可以在hadoop1或hadoop2里面:
zkCli.sh
get /chaoren
也可以修改里面的data:
set /chaoren change_data (将chaoren里面的data修改为change_data)
get /chaoren

ZooKeeper的数据模型

层次化的目录结构,命名符合常规文件系统规范

每个节点在zookeeper中叫做znode,并且其有一个唯一的路径标识

节点Znode可以包含数据和子节点,但是EPHEMERAL类型的节点不能有子节点

Znode中的数据可以有多个版本,比如某一个路径下存有多个数据版本,那么查询这个路径下的数据就需要带上版本

客户端应用可以在节点上设置监视器

节点不支持部分读写,而是一次性完整读写

Zookeeper的节点

Znode有两种类型,短暂的(ephemeral)和持久的(persistent)

Znode的类型在创建时确定并且之后不能再修改

短暂znode的客户端会话结束时,zookeeper会将该短暂znode删除,短暂znode不可以有子节点

持久znode不依赖于客户端会话,只有当客户端明确要删除该持久znode时才会被删除

Znode有四种形式的目录节点,PERSISTENT、PERSISTENT_SEQUENTIAL、EPHEMERAL、EPHEMERAL_SEQUENTIAL

Zookeeper的角色

领导者(leader),负责进行投票的发起和决议,更新系统状态

学习者(learner),包括跟随者(follower)和观察者(observer),follower用于接受客户端请求并想客户端返回结果,在选主过程中参与投票

Observer可以接受客户端连接,将写请求转发给leader,但observer不参加投票过程,只同步leader的状态,observer的目的是为了扩展系统,提高读取速度

客户端(client),请求发起方

转载于:https://www.cnblogs.com/ahu-lichang/p/6671272.html

Zookeeper服务器集群的搭建与操作相关推荐

  1. Zookeeper实战-集群环境搭建

    Zookeeper 分布式服务框架是 Apache Hadoop 的一个子项目,它是Google的Chubby一个开源的实现,主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务.状 ...

  2. 搭建zookeeper服务器集群

    1.结构:一共三个节点(zk服务器集群规模不小于3个节点),要求服务器之间系统时间保持一致. 2. 上传zk (1)进行解压: tar zookeeper-3.4.5.tar.gz (2)重命名: m ...

  3. zookeeper介绍及集群的搭建(利用虚拟机)

    ZooKeeper ​ ZooKeeper是一个分布式的,开放源码(apache)的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase.dubbox.kaf ...

  4. Zookeeper+Kafka集群搭建

    Zookeeper集群搭建 Kafka集群是把状态保存在Zookeeper中的,首先要搭建Zookeeper集群. 1.软件环境 (3台服务器-我的测试) 192.168.30.204 server1 ...

  5. (超详细)基于Zookeeper的Hadoop HA集群的搭建

    基于Zookeeper的Hadoop HA集群的搭建 JunLeon--go big or go home 前言: 高可用(high availability,HA)指的是若当前工作中的机器宕机了,系 ...

  6. 负载与读写分离图片服务器集群模型

    对于绝大多数网站,图片资源是一个非常重要的元素.社区论坛里面图片相册,电子商务线上产品展示图,移动端应用图片分享功能等.都在说互联网正在处于读图时代,各大中小型网站都需要保持良好的图片处理能力.需要支 ...

  7. 淘淘商城23_Linux上的操作_solr集群的搭建、zookeeper集群的搭建

    安装包链接: 百度网盘: 链接:https://pan.baidu.com/s/13m_kjoZiN2cVH_nIGs0a9w  提取码:be17 一.概念理解 1. 什么是SolrCloud Sol ...

  8. 搭建zookeeper+kafka集群

      搭建zookeeper+kafka集群 一.环境及准备 集群环境:   软件版本: 部署前操作: 关闭防火墙,关闭selinux(生产环境按需关闭或打开) 同步服务器时间,选择公网ntpd服务器或 ...

  9. zookeeper + kafka集群搭建详解

    文章目录 一.消息队列介绍 1.1 为什么需要消息队列 (MO) 1.2 使用消息队列的好处 (1)解耦 (2)可恢复性 (3)缓冲 (4)灵活性 & 峰值处理能力 (5)异步通信很多时候,用 ...

最新文章

  1. Qt中多线程与界面组件的通信
  2. 和泰c语言函数库,合泰杯 | 合泰单片机入门 编程详解(二)
  3. uniapp保存图片_Uniapp实现保存图片到相册(封装起来)
  4. java在线用户查看_java Session统计在线用户,并且显示在线用户
  5. .Net Framework学习的10个建议
  6. 3137102432_施少兵_实验2
  7. 激活中国汽车媒体圈,杉车网与尾部汽车媒体的九死一生
  8. node ajax实现登录注册,nodejs实现简易登录注册
  9. 使用HTML语法图文混排
  10. oracle多表查询员工和上级,oracle多表查询之经典面试题
  11. 如何设置需要密码才能访问的共享文件夹?
  12. 陶哲轩(Terence Tao)对从事数学职业的建议
  13. 六一儿童节带娃旅游,在曼谷玩哪些景点超好玩?
  14. 联发科mt6735详细参数_联发科MT6737和MT6735芯片资料和性能对比
  15. 关于进程,线程,协程,一点心得
  16. 智能指针循环引用——你真的懂了吗?
  17. CentOS7搭建个人站点
  18. SBUF数据缓冲寄存器
  19. JS+CSS实现页面滚动切换图片(从边角扩散)的效果
  20. 仿阿里云后台管理界面模板html源码——后台

热门文章

  1. python四十八:多态
  2. python类常用装饰器
  3. gulp前端自动化相关文章收集
  4. jquery总结06-动画事件03-淡入淡出效果
  5. centos 7 学习笔记(一)
  6. XMLHTTP中setRequestHeader参数问题
  7. JBoss Eclipse IDE
  8. 亮剑:PHP,我的未来不是梦(4)
  9. Autodesk PowerInspect 2021中文版
  10. deep learning:RBM公式推导+源码 ----- C++