博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Zookeeper笔记
阅读量:4978 次
发布时间:2019-06-12

本文共 2741 字,大约阅读时间需要 9 分钟。

1. zookeeper快速上手

1.1. zookeeper的基本功能和应用场景

 

1.2. zookeeper的整体运行机制

1.3. zookeeper的数据存储机制

1.3.1. 数据存储形式

  zookeeper中对用户的数据采用kv形式存储

  只是zk有点特别:

    key:是以路径的形式表示的,那就以为着,各key之间有父子关系,比如

    / 是顶层key

  用户建的key只能在/ 下作为子节点,比如建一个key: /aa  这个key可以带value数据

  也可以建一个key:   /bb

  也可以建key: /aa/xx

  zookeeper中,对每一个数据key,称作一个znode 

  综上所述,zk中的数据存储形式如下:

1.3.2. znode类型

  zookeeper中的znode有多种类型:

    1、PERSISTENT  持久的:创建者就算跟集群断开联系,该类节点也会持久存在与zk集群中

    2、EPHEMERAL  短暂的:创建者一旦跟集群断开联系,zk就会将这个节点删除

    3、SEQUENTIAL  带序号的:这类节点,zk会自动拼接上一个序号,而且序号是递增的

  组合类型:

    PERSISTENT  :持久不带序号

    EPHEMERAL  :短暂不带序号

    PERSISTENT  且 SEQUENTIAL   :持久且带序号

    EPHEMERAL  且 SEQUENTIAL  :短暂且带序号

1.4. zookeeper的集群部署

  1、上传安装包到集群服务器

  2、解压

  3、修改配置文件  进入zookeeper的安装目录的conf目录

    cp zoo_sample.cfg zoo.cfg

    vi zoo.cfg

# The number of milliseconds of each ticktickTime=2000initLimit=10syncLimit=5dataDir=/root/zkdataclientPort=2181#autopurge.purgeInterval=1server.1=hdp-master:2888:3888server.2=hdp-slaver1:2888:3888server.3=hdp-slaver2:2888:3888

  对3台节点,都创建目录 mkdir /root/zkdata 

  对3台节点,在工作目录中生成myid文件,但内容要分别为各自的id: 1,2,3

    hdp-master上:  echo 1 > /root/zkdata/myid

    hdp-slaver1上:  echo 2 > /root/zkdata/myid

    hdp-slaver2上:  echo 3 > /root/zkdata/myid

  4、从hdp20-01上scp安装目录到其他两个节点

    scp -r zookeeper-3.4.6/ hdp20-02$PWD

    scp -r zookeeper-3.4.6/ hdp20-03:$PWD

  5、启动zookeeper集群

    zookeeper没有提供自动批量启动脚本,需要手动一台一台地起zookeeper进程

    在每一台节点上,运行命令:

    bin/zkServer.sh start

  启动后,用jps应该能看到一个进程:QuorumPeerMain  但是,光有进程不代表zk已经正常服务,需要用命令检查状态:bin/zkServer.sh status

  能看到角色模式:为leader或follower,即正常了。

1.5. zookeeper的命令行客户端操作

1.5.1. zookeeper的数据存储形式:

  一、zookeeper中存储数据的基本形式为: key , value

  二、zookeeper中的key是用路径表示的:

    /aa : 88888    

    /aa/bb : "xxoo"   

    /aa/cc : "edu360"

    /tt: 9898

  每一个key-value称为一个znode(zookeeper数据节点)

  三、zookeeper中的数据节点有4种类型:

    1、持久节点:客户端一旦建立,zk会持久保存,除非有客户端手动删除

    2、短暂节点:创建这个节点的客户端一旦断开与zookeeper集群的联系,zookeeper集群就会自动将该节点删除

    3、带序号的节点:在同一个父节点下,建带序号的子节点,zk会自动给客户端指定的子节点名后拼接一个自增的序号

    4、不带序号的节点:

  上述4中类型,可以有以下组合类型:

    持久-带序号

    持久-不带序号

    短暂-带序号

    短暂-不带序号

1.5.2. 数据管理功能:

  创建节点: create /aaa 'ppppp'

  查看节点下的子节点:   ls /aaa

  获取节点的value: get /aaa

  修改节点的value: set /aaa 'mmmmm'

  删除节点:rmr /aaa

1.5.3. 数据监听功能:

  ls /aaa watch   ## 查看/aaa的子节点的同时,注册了一个监听“节点的子节点变化事件”的监听器

  get /aaa watch## 获取/aaa的value的同时,注册了一个监听“节点value变化事件”的监听器

  注意:注册的监听器在正常收到一次所监听的事件后,就失效

1.6. zookeeper图形化客户端插件

  在Eclipse环境下安装ZooKeeper状态查看相关的插件步骤如下:

    Step 1. 在 Eclipse 菜单打开Help -> Install New Software…

    Step 2. 添加 url   http://www.massedynamic.org/eclipse/updates/
    Step 3. 选择插件并安装运行
    Step 4. 在 Eclipse 菜单打开Window->Show View->Other…->ZooKeeper 3.2.2。
    Step 5. 连接ZK 输入正在运行的ZK server 地址和端口

  连接成功后就就可以在Eclipse里查看ZK Server里的节点信息。

 

转载于:https://www.cnblogs.com/zhangchao162/p/9858390.html

你可能感兴趣的文章
在项目中移除CocoaPods
查看>>
【洛谷】CYJian的水题大赛【第二弹】解题报告
查看>>
POJ 1703 Find them, Catch them【种类/带权并查集+判断两元素是否在同一集合/不同集合/无法确定+类似食物链】...
查看>>
L1-5. A除以B【一种输出格式错了,务必看清楚输入输出】
查看>>
Git一分钟系列--快速安装git客户端
查看>>
纵越6省1市-重新启动
查看>>
hive安装以及hive on spark
查看>>
jz1074 【基础】寻找2的幂
查看>>
Wannafly模拟赛5 A 思维 D 暴力
查看>>
【Linux开发】CCS远程调试ARM,AM4378
查看>>
Linux之ssh服务介绍
查看>>
排序:冒泡排序
查看>>
Java中instanceof关键字的用法总结
查看>>
引用类型-Function类型
查看>>
(转)Android 仿订单出票效果 (附DEMO)
查看>>
数据库多张表导出到excel
查看>>
微信小程序去除button默认样式
查看>>
Where does Visual Studio look for C++ Header files?
查看>>
Java打包可执行jar包 包含外部文件
查看>>
Windows Phone开发(37):动画之ColorAnimation
查看>>