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根目录下执行:

  1. bin/zkServer.sh start

可以看到:

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

  1. bin/zkCli.sh -server 127.0.0.1:2181

输出了一堆

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

命令行

help命令

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

  1. help
  2. ZooKeeper -server host:port cmd args
  3. stat path [watch]
  4. set path data [version]
  5. ls path [watch]
  6. delquota [-n|-b] path
  7. ls2 path [watch]
  8. setAcl path acl
  9. setquota -n|-b val path
  10. history
  11. redo cmdno
  12. printwatches on|off
  13. delete path [version]
  14. sync path
  15. listquota path
  16. rmr path
  17. get path [watch]
  18. create [-s] [-e] path data acl
  19. addauth scheme auth
  20. quit
  21. getAcl path
  22. close
  23. connect host:port

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

ls、ls2

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

  1. [zk: 127.0.0.1:2181(CONNECTED) 8] ls /
  2. [zookeeper]
  3. [zk: 127.0.0.1:2181(CONNECTED) 9] ls2 /
  4. [zookeeper]
  5. cZxid = 0x0
  6. ctime = Thu Jan 01 08:00:00 CST 1970
  7. mZxid = 0x0
  8. mtime = Thu Jan 01 08:00:00 CST 1970
  9. pZxid = 0x8
  10. cversion = 3
  11. dataVersion = 0
  12. aclVersion = 0
  13. ephemeralOwner = 0x0
  14. dataLength = 0
  15. numChildren = 1

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

get

获取路径下的信息,同ls2

  1. [zk: 127.0.0.1:2181(CONNECTED) 12] get /
  2. cZxid = 0x0
  3. ctime = Thu Jan 01 08:00:00 CST 1970
  4. mZxid = 0x0
  5. mtime = Thu Jan 01 08:00:00 CST 1970
  6. pZxid = 0x9
  7. cversion = 4
  8. dataVersion = 0
  9. aclVersion = 0
  10. ephemeralOwner = 0x0
  11. dataLength = 0
  12. numChildren = 2

create

创建一个路径,需要

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

set

设置路径的值

  1. [zk: 127.0.0.1:2181(CONNECTED) 14] set /test a
  2. cZxid = 0x9
  3. ctime = Thu Sep 07 21:58:43 CST 2017
  4. mZxid = 0xa
  5. mtime = Thu Sep 07 22:05:27 CST 2017
  6. pZxid = 0x9
  7. cversion = 0
  8. dataVersion = 1
  9. aclVersion = 0
  10. ephemeralOwner = 0x0
  11. dataLength = 1
  12. numChildren = 0

delete

删除

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

close、connect、quit

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

history、redo

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

getAcl、setAcl

【分布式】ZooKeeper学习之一:安装及命令行使用的更多相关文章

  1. mac安装GNU命令行工具

    mac安装GNU命令行工具 2.添加的repo     tap home/dupes        brew install coreutils  binutils  diffutils  ed -- ...

  2. 【Mac】Mac OS X 安装GNU命令行工具

    macos的很多用户都是做it相关的人,类unix系统带来了很多方面,尤其是经常和linux打交道的人. 但是作为经常使用linux 命令行的人发现macos中的命令行工具很多都是bsd工具,跟lin ...

  3. Django之win7下安装与命令行工具

    Django之win7下安装与命令行工具 下载安装 pip3 install django 注意:自动添加环境变量 测试是否安装成功 1.输入python 2.输入import django 3.输入 ...

  4. 你使用 Web 平台安装程序命令行工具

    你使用 Web 平台安装程序命令行工具 获取的软件由其所有者授权给你.Microsoft 未授予你第三方软件的任何权利.已成功加载主源: https://go.microsoft.com/?linki ...

  5. NodeJS 安装cnpm命令行工具

    在安装之前,请确保已安装Git和NodeJS. cmd机内命令窗口,输入以下命令: git config --system http.sslcainfo /bin/curl-ca-bundle.crt ...

  6. Hadoop学习(5)-zookeeper的安装和命令行,java操作

    zookeeper是干嘛的呢 Zookeeper的作用1.可以为客户端管理少量的数据kvkey:是以路径的形式表示的,那就意味着,各key之间有父子关系,比如/ 是顶层key用户建的key只能在/ 下 ...

  7. Hadoop学习(6)-HBASE的安装和命令行操作和java操作

    使用HABSE之前,要先安装一个zookeeper 我以前写的有https://www.cnblogs.com/wpbing/p/11309761.html 先简单介绍一下HBASE HBASE是一个 ...

  8. Zookeeper 安装及命令行操作

    [参考文章]:[分布式]Zookeeper使用--命令行 [参考文章]:zookeeper的数据模型 [参考文章]:zookeeper ACL使用 1. 安装包下载 官方下载地址 选择一个具体的版本进 ...

  9. webpack学习(一)安装和命令行、一次js/css的打包体验及不同版本错误

    一.前言 找了一个视频教程开始学习webpack,跟着视频学习,在自己的实际操作中发现,出现了很多问题.基本上都是因为版本的原因而导致,自己看的视频是基于webpack 1.x版,而自己现在早已是we ...

随机推荐

  1. Messagepack原理

    什么是Messagepack? 用官方的话说:MessagePack是一种高效的二进制序列化格式.它允许您像JSON一样在多个语言之间交换数据.但是,它更快并且更小.小整数被编码为一个字节,和典型的短 ...

  2. 2017 Multi-University Training Contest - Team 1 1003&&HDU 6035 Colorful Tree【树形dp】

    Colorful Tree Time Limit: 6000/3000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)T ...

  3. hihoCoder #1094 : Lost in the City(枚举,微软苏州校招笔试 12月27日 )

    #1094 : Lost in the City 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 Little Hi gets lost in the city. He ...

  4. [bzoj3910] 火车

    一开始看错题了... 求经过的道路数量就求个lca,把路径上的点置为已经过的话,可以写一个并查集,把某个点往上连续已经过的一段点并起来. #include<cstdio> #include ...

  5. 树形dp总结

    转自 http://blog.csdn.net/angon823 介绍 1.什么是树型动态规划 顾名思义,树型动态规划就是在"树"的数据结构上的动态规划,平时作的动态规划都是线性的 ...

  6. poj_2503(map映射)

    题目链接poj2503 Babelfish Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 38820   Accepted: ...

  7. gulp + es6 + babel+ angular 搭建环境并实现简单的路由

    1.ECMAscript 6的语法糖面临的唯一问题就是浏览器兼容的问题,使得很多程序员望而怯步. 2.babel的作用就是将es6的语法编译成es5被浏览器所识别.这样就可以任性的使用es6了. 3. ...

  8. Proxy 那点事儿

    ---恢复内容开始--- 尊重原创:https://my.oschina.net/huangyong/blog/159788 Proxy,也就是"代理"了.意思就是,你不用去做,别 ...

  9. Linux的ls命令在Windows中的应用

    Linux的ls命令在Windows中的应用 注:ls是Linux中的命令.其作用是列出当前目录下的文件与文件夹.效果等同于Wndows中的dir指令. 如下图 下面是详细步骤 步骤一.在桌面新建一个 ...

  10. 迈向c++的一次尝试

    从C到C++说着容易做起来也不难,今天做一下尝试. ★:题目介绍:今天是一次尝试所以先从简单的题开始. ★:试题分析:由题可了解到本题目的是要做到由一个数字到一个字符串的转变. 题目简单是由于它只是让 ...