zoukankan      html  css  js  c++  java
  • 【分布式】ZooKeeper学习之一:安装及命令行使用

    ZooKeeper学习之一:安装及命令行使用

    一直都想着好好学一学分布式系统,但是这拖延症晚期也是没得治了,所以干脆强迫自己来写一个系列博客,从zk的安装使用、客户端调用、涉及到的分布式原理、选举过程及Paxos算法,一步步的讲清学习的历程。现在开始第一篇,zk的安装及命令行使用。

    本文为ZooKeeper官方文档的自我理解版。

    安装

    笔者为mac环境,类似于Linux环境因此直接下载了3.4.10稳定版的安装包,解压后放在/Users/imac/zookeeper-3.4.10目录下。

    修改conf目录下的zoo_sample.cfg为zoo.cfg,根据需求修改其中的参数,我将dataDir修改成自己的目录了。

    接下来是启动zk,在zk根目录下执行:

    bin/zkServer.sh start
    

    可以看到:

    那么zkserver已经run起来了,接下来是启动客户端,执行:

    bin/zkCli.sh -server 127.0.0.1:2181
    

    输出了一堆

    至此一个单机版的zk已经跑起来并且可以直接输入命令行来对zk进行操作了,接下来进行zk的命令行使用。

    命令行

    help命令

    输入help命令,会提示一堆命令,如下:

    help
    ZooKeeper -server host:port cmd args
    	stat path [watch]
    	set path data [version]
    	ls path [watch]
    	delquota [-n|-b] path
    	ls2 path [watch]
    	setAcl path acl
    	setquota -n|-b val path
    	history 
    	redo cmdno
    	printwatches on|off
    	delete path [version]
    	sync path
    	listquota path
    	rmr path
    	get path [watch]
    	create [-s] [-e] path data acl
    	addauth scheme auth
    	quit 
    	getAcl path
    	close 
    	connect host:port
    

    接下来就一个个的来讲讲。

    ls、ls2

    因为zk可以做namespace,所以是按照文件系统的树形结构,也就有了ls这样的操作。

    [zk: 127.0.0.1:2181(CONNECTED) 8] ls /
    [zookeeper]
    
    [zk: 127.0.0.1:2181(CONNECTED) 9] ls2 /
    [zookeeper]
    cZxid = 0x0
    ctime = Thu Jan 01 08:00:00 CST 1970
    mZxid = 0x0
    mtime = Thu Jan 01 08:00:00 CST 1970
    pZxid = 0x8
    cversion = 3
    dataVersion = 0
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 0
    numChildren = 1
    

    即展示路径下的信息,ls2为详细信息

    get

    获取路径下的信息,同ls2

    [zk: 127.0.0.1:2181(CONNECTED) 12] get /
    
    cZxid = 0x0
    ctime = Thu Jan 01 08:00:00 CST 1970
    mZxid = 0x0
    mtime = Thu Jan 01 08:00:00 CST 1970
    pZxid = 0x9
    cversion = 4
    dataVersion = 0
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 0
    numChildren = 2
    

    create

    创建一个路径,需要

    [zk: 127.0.0.1:2181(CONNECTED) 11] create /test test_data
    Created /test
    

    set

    设置路径的值

    [zk: 127.0.0.1:2181(CONNECTED) 14] set /test a
    cZxid = 0x9
    ctime = Thu Sep 07 21:58:43 CST 2017
    mZxid = 0xa
    mtime = Thu Sep 07 22:05:27 CST 2017
    pZxid = 0x9
    cversion = 0
    dataVersion = 1
    aclVersion = 0
    ephemeralOwner = 0x0
    dataLength = 1
    numChildren = 0
    

    delete

    删除

    [zk: 127.0.0.1:2181(CONNECTED) 15] delete /test
    

    close、connect、quit

    关闭连接,对于的是connect打开连接,quit是退出

    history、redo

    history可以查看历史命令记录,并且有编号;redo+编号就可以重写执行该命令

    getAcl、setAcl

  • 相关阅读:
    Codeforces 741D 【Arpa’s letter-marked tree and Mehrdad’s Dokhtar-kosh paths】
    Codeforces 235C 【Cyclical Quest】
    UOJ #62.【UR #5】怎样跑得更快
    luoguP3648 [APIO2014]序列分割
    luoguP4782 [模板]2-SAT问题
    原博客已废弃
    个数可变的参数收藏
    新的一年开始。
    文件上传下载总结
    模板模式学习(转)
  • 原文地址:https://www.cnblogs.com/puyangsky/p/7535049.html
Copyright © 2011-2022 走看看