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

  • 相关阅读:
    Charles抓包工具
    JQuery 实现表单验证,所有验证通过方可提交
    卡巴斯基注册信息清除
    Nginx 404 Not Found 解决办法
    php mysql 多表查询之子查询语句
    搜狗拼音、QQ拼音输入法、2345拼音输入法、百度输入法 、手心输入法对比。(个人体会)
    Notepad++使用-如何导出/导入配置文件
    深蓝词库转换2.4版发布,支持最新的搜狗用户词库备份bin格式
    网站更换服务器,百度站长后台抓取诊断时间
    阿里云代金券领取
  • 原文地址:https://www.cnblogs.com/puyangsky/p/7535049.html
Copyright © 2011-2022 走看看