zookeeper入门

zookeeper入门

[TOC]

zookeeper的简介

顾名思义,zookeeper就是动物园管理员的意思,Zookeeper是一个分布式协调服务;就是为用户的分布式应用程序提供协调服务。其主要具有一下特点:

  1. zookeeper是为别的分布式程序服务的
  2. Zookeeper本身就是一个分布式程序(只要有半数以上节点存活,zk就能正常服务)
  3. Zookeeper所提供的服务涵盖:主从协调、服务器节点动态上下线、统一配置管理、分布式共享锁、统一名称等服务。

虽然说可以提供各种服务,但是zookeeper在底层其实只提供了两个功能:

  1. 管理(存储,读取)用户程序提交的元数据(不是用户程序的业务数据);
  2. 并为用户程序提供数据节点监听服务;(监听因故宕机的程序,并通知其他应用程序接替工作)。

zookeeper的特性

  1. Zookeeper:一个leader,多个follower组成的集群

  2. 全局数据一致:每个server保存一份相同的数据副本,client无论连接到哪个server,数据都是一致的

  3. 分布式读写,更新请求转发,由leader实施

  4. 更新请求顺序进行,来自同一个client的更新请求按其发送顺序依次执行

  5. 数据更新原子性,一次数据更新要么成功,要么失败

  6. 实时性,在一定时间范围内,client能读到最新数据

zookeeper环境搭建

  1. 拷贝安装包到对应服务器上。

  2. 解压缩安装包

    tar -zvxf zookeeper-3.4.5.tar.gz
    mv zookeeper-3.4.5 zookeeper #修改文件夹名称
    
  3. 配置环境变量

    vim /etc/profile
    #加入以下信息
    export ZOOKEEPER_HOME=/opt/zookeeper
    export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$ZOOKEEPER_HOME/bin
    #添加之后
    source /etc/profile
    
  4. 修改conf文件夹下的配置文件(复制zoo_sample.xml为zoo.xml),添加如下内容

    dataDir=/root/zookeeper/data
    dataLogDir=/root/zookeeper/log
    server.1=mini1:2888:3888   #其余节点的主机名,以及通信的端口和检测连接的端口
    server.2=mini2:2888:3888
    server.3=mini3:2888:3888
    
  5. 在前面定义的dataDir目录下新建muid文件,加入内容1,之后配置的节点依次递增。

  6. 启动服务(其余节点需要关闭防火墙)

    zkServer.sh start  #启动服务
    zkServer.sh status  #查看服务状态(主从节点信息)
    

Zookeeper的数据管理功能

  • 在zookeeper中默认通过树的结构保存用户的元数据

    这里写图片描述

    每一个节点都可以存放数据,类似与文件系统的树形存储目录。

  • 通过命令行连接到zookeeper服务器。

    通过解压目录的bin/zkCli.sh可以直接启动命令行的客户端。

  • 在zookeeper中每个节点的数据可以分为两类:

    1. 瞬时节点(ephemeral)(当连接进程与zookeeper断开连接的一定时间后(心跳时间)就会删除节点)
    2. 持久节点(persistent)(即时连接进程与zookeeper断开也不会删除该节点)

    而且每种节点又分为两种,有序节点与无序节点(有序节点在创建时会默认在其后添加一个递增的序号)。所以总共在zookeeper中包括了四种节点。

    • PERSISTENT
    • PERSISTENT_SEQUENTIAL(持久序列/test0000000019 )
    • EPHEMERAL
    • EPHEMERAL_SEQUENTIAL

通过客户端对元数据进行管理

  • 通过bin/zkCli.sh我们通过客户端连接到zookeeper,我们可以在命令行对节点进行增删改查操作。
功能 描述
create 在本地目录树中创建一个节点
delete 删除一个节点
exists 测试本地是否存在目标节点
get/set data 从目标节点上读取 / 写数据
get/set ACL 获取 / 设置目标节点访问控制列表信息
get children 检索一个子节点上的列表
sync 等待要被传送的数据
  • 通过help命令我们可以对查看命令及其使用方法。

    这里写图片描述

    值得注意的是在lsget命令后面我们可以对某个数据增加监控,当某个数据发生变化的时候连接进程后收到信号。只能监听一次,完成后后面的事件不会再触发监听。

    get /test/test1 true  #对/test/test1增加监听,当其数据发生变化的时候会收到信息
    # WatchedEvent state:SyncConnected type:NodeDataChanged path:/test/test1
    ls /test true  #对/test增加监听,子目录下内容发生变化的时候会收到信息。
    # WatchedEvent state:SyncConnected type:NodeDeleted path:/test/test1
    

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容