部署和运行

脚本

ZooKeeper的bin目录下的脚本见下表

脚本 说明
zkCleanup 清理ZooKeeper历史数据,包括事务日志文件和快照数据文件
zkCli ZooKeeper的一个简易客户端
zkEnv 设置ZooKeeper的环境变量
zkServer ZooKeeper服务器的启动、停止和重启

启动服务

常见的启动方式有两种:

  1. Java命令行, 在ZooKeeper目录下执行如下命令

    1. java -cp zookeeper-3.4.6.jarlib
  2. 使用自带脚本启动,在ZooKeeper目录下执行如下命令:

    1. ./bin/zkServer.sh

停止服务

可以使用zkServer脚本的stop命令来停止服务。

  1. sh bin/zkServer.sh stop

基本指令

客户端连接

Zookeeper自带的脚本里有个zkCli,是ZooKeeper的一个简易客户端, 使用方式:

  1. zkCli.sh [-server ip:port]

运行如下指令启动客户端可以连接到默认服务器localhost:2181

  1. bin/zkCli.sh

看到下面输表明连接正常:

  1. Connecting to localhost:2181
  2. 2019-03-27 17:05:34,602 [myid:] - INFO [main:Environment@100] - Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT
  3. 2019-03-27 17:05:34,605 [myid:] - INFO [main:Environment@100] - Client environment:host.name=WANJP3
  4. 2019-03-27 17:05:34,605 [myid:] - INFO [main:Environment@100] - Client environment:java.version=1.8.0_20
  5. 2019-03-27 17:05:34,607 [myid:] - INFO [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
  6. 2019-03-27 17:05:34,608 [myid:] - INFO [main:Environment@100] - Client environment:java.home=C:\Program Files\Java\jre1.8.0_20
  7. 2019-03-27 17:05:34,608 [myid:] - INFO [main:Environment@100] - Client environment:java.class.path=D:\zookeeper-3.4.6\bin\..\build\classes;D:\zookeeper-3.4.6\bin\..\build\lib\*;D:\zookeeper-3.4.6\bin\..\zookeeper-3.4.6.jar;D:\zookeeper-3.4.6\bin\..\lib\jline-0.9.94.jar;D:\zookeeper-3.4.6\bin\..\lib\log4j-1.2.16.jar;D:\zookeeper-3.4.6\bin\..\lib\netty-3.7.0.Final.jar;D:\zookeeper-3.4.6\bin\..\lib\slf4j-api-1.6.1.jar;D:\zookeeper-3.4.6\bin\..\lib\slf4j-log4j12-1.6.1.jar;D:\zookeeper-3.4.6\bin\..\conf
  8. 2019-03-27 17:05:34,609 [myid:] - INFO [main:Environment@100] - Client environment:java.library.path=C:\ProgramData\Oracle\Java\javapath;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;D:\Oracle\product\11.2.0\client_2\bin;D:\Oracle\Oracle64;D:\Oracle;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;D:\node\;D:\VSCode\bin;d:\eclipse\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\TortoiseSVN\bin;D:\gradle-4.10\bin;D:\gradle-4.10\;D:\node\node_global_modules\;C:\Program Files\Git\bin\;D:\apache-maven-3.5.4\bin;C:\Program Files\NVIDIA Corporation\NVIDIA NvDLISR;;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;%SYSTEMROOT%\System32\OpenSSH\;C:\Users\nan\AppData\Local\Microsoft\WindowsApps;C:\Users\nan\AppData\Roaming\npm;;.
  9. 2019-03-27 17:05:34,610 [myid:] - INFO [main:Environment@100] - Client environment:java.io.tmpdir=C:\Users\nan\AppData\Local\Temp\
  10. 2019-03-27 17:05:34,610 [myid:] - INFO [main:Environment@100] - Client environment:java.compiler=<NA>
  11. 2019-03-27 17:05:34,611 [myid:] - INFO [main:Environment@100] - Client environment:os.name=Windows 8.1
  12. 2019-03-27 17:05:34,611 [myid:] - INFO [main:Environment@100] - Client environment:os.arch=amd64
  13. 2019-03-27 17:05:34,611 [myid:] - INFO [main:Environment@100] - Client environment:os.version=6.3
  14. 2019-03-27 17:05:34,612 [myid:] - INFO [main:Environment@100] - Client environment:user.name=nan
  15. 2019-03-27 17:05:34,612 [myid:] - INFO [main:Environment@100] - Client environment:user.home=C:\Users\nan
  16. 2019-03-27 17:05:34,621 [myid:] - INFO [main:Environment@100] - Client environment:user.dir=D:\zookeeper-3.4.6
  17. 2019-03-27 17:05:34,623 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@277050dc
  18. Welcome to ZooKeeper!
  19. 2019-03-27 17:05:34,714 [myid:] - INFO [main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@975] - Opening socket connection to server 127.0.0.1/127.0.0.1:2181. Will not attempt to authenticate using SASL (unknown error)
  20. 2019-03-27 17:05:34,716 [myid:] - INFO [main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@852] - Socket connection established
  21. to 127.0.0.1/127.0.0.1:2181, initiating session
  22. JLine support is enabled
  23. [zk: localhost:2181(CONNECTING) 0] 2019-03-27 17:05:34,856 [myid:] - INFO [main-SendThread(127.0.0.1:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server 127.0.0.1/127.0.0.1:2181, sessionid = 0x169be6525760000, negotiated timeout = 30000
  24. WATCHER::
  25. WatchedEvent state:SyncConnected type:None path:null
  26. ls
  27. [zk: localhost:2181(CONNECTED) 1]

创建

通过zkCli连接服务器后,使用```create``可以创建一个ZooKeeper节点,使用方式:

  1. create [-s] [-e] path data acl

-s 顺序节点, -e临时节点,如果补添加创建的就是持久节点

acl是权限控制,缺省情况下,不做任何权限控制

读取

读取指令有两种,ls列出指定节点下的子节点, get获取指定节点的数据内容和属性信息,两个指令的使用方式如下:

  1. ls path [wacth]
  2. get path [watch]
  1. [zk: localhost:2181(CONNECTED) 21] create /test 123
  2. Created /test
  3. [zk: localhost:2181(CONNECTED) 22] ls /test
  4. []
  5. [zk: localhost:2181(CONNECTED) 23] get /test
  6. 123
  7. cZxid = 0x28
  8. ctime = Wed Mar 27 17:42:45 CST 2019
  9. mZxid = 0x28
  10. mtime = Wed Mar 27 17:42:45 CST 2019
  11. pZxid = 0x28
  12. cversion = 0
  13. dataVersion = 0
  14. aclVersion = 0
  15. ephemeralOwner = 0x0
  16. dataLength = 3
  17. numChildren = 0

cZxid创建该节点的事务ID,mZxid最后一次更新该节点的事务ID

更新

set命令用于更新指定节点的数据内容,使用方式如下:

  1. set path data [version]
  1. [zk: localhost:2181(CONNECTED) 24] set /test 111
  2. cZxid = 0x28
  3. ctime = Wed Mar 27 17:42:45 CST 2019
  4. mZxid = 0x29
  5. mtime = Wed Mar 27 17:49:59 CST 2019
  6. pZxid = 0x28
  7. cversion = 0
  8. dataVersion = 1
  9. aclVersion = 0
  10. ephemeralOwner = 0x0
  11. dataLength = 3
  12. numChildren = 0
  13. [zk: localhost:2181(CONNECTED) 25] get /test
  14. 111
  15. cZxid = 0x28
  16. ctime = Wed Mar 27 17:42:45 CST 2019
  17. mZxid = 0x29
  18. mtime = Wed Mar 27 17:49:59 CST 2019
  19. pZxid = 0x28
  20. cversion = 0
  21. dataVersion = 1
  22. aclVersion = 0
  23. ephemeralOwner = 0x0
  24. dataLength = 3
  25. numChildren = 0
  26. [zk: localhost:2181(CONNECTED) 26]

执行更新命令后,节点/test的数据已经变成111,````cZxid没有变化,mZxid变成了0x29,dataVersion```从0变成了1。

删除

delete命令用于删除指定节点,使用方式如下:

  1. delete path [version]

删除节点时,该节点不能有子节点。如下:

  1. [zk: localhost:2181(CONNECTED) 27] create /test/test-1 101
  2. Created /test/test-1
  3. [zk: localhost:2181(CONNECTED) 28] ls /test
  4. [test-1]
  5. [zk: localhost:2181(CONNECTED) 29] delete /test
  6. Node not empty: /test
  7. [zk: localhost:2181(CONNECTED) 30] delete /test/test-1
  8. [zk: localhost:2181(CONNECTED) 31] ls
  9. [zk: localhost:2181(CONNECTED) 32] ls /test
  10. []
  11. [zk: localhost:2181(CONNECTED) 33] delete /test
  12. [zk: localhost:2181(CONNECTED) 34] ls /test
  13. Node does not exist: /test

Zookeeper基础使用的更多相关文章

  1. zookeeper_02:zookeeper基础

    ZooKeeper基础概述 ZooKeeper维护一个小型的数据节点,这些节点被称为znode,采用类似于文件系统的层级树状结构进行管理. 针对一个znode,没有数据常常表达了重要的信息.比如,在主 ...

  2. Hadoop系列-zookeeper基础

    目前是刚刚初学完zookeeper,这篇文章主要是简单的对一些基本的概念进行梳理强化. zookeeper基础概念的理解 有时候计算机领域很多名词都是从一长串英文提取首字母缩写而来,但很不幸zooke ...

  3. Zookeeper 基础、工作流、ZAP协议

    ZooKeeper 基础 在深入了解ZooKeeper的运作之前,让我们来看看ZooKeeper的基本概念.[1] 我们将在本章中讨论以下主题:1.Architecture(架构)2.Hierarch ...

  4. Zookeeper系列一:Zookeeper基础命令操作

    有些事不是努力就可以改变的,五十块的人民币设计的再好看,也没有一百块的招人喜欢. 前言 由于公司年底要更换办公地点,所以最近投了一下简历,发现面试官现在很喜欢问dubbo.zookeeper和高并发等 ...

  5. Zookeeper基础教程(六):.net core使用Zookeeper

    Demo代码已提交到gitee,感兴趣的更有可以直接克隆使用,地址:https://gitee.com/shanfeng1000/dotnetcore-demo/tree/master/Zookeep ...

  6. Zookeeper基础教程(五):C#实现Zookeeper分布式锁

    分布式锁 互联网初期,我们系统一般都是单点部署,也就是在一台服务器完成系统的部署,后期随着用户量的增加,服务器的压力也越来越大,响应速度越来越慢,甚至出现服务器崩溃的情况. 为解决服务器压力太大,响应 ...

  7. 第一章 zookeeper基础概念

    1.ZooKeeper是什么 ZooKeeper为分布式应用提供了高效且可靠的分布式协调服务,提供了统一命名服务. 配置管理和分布式锁等分布式的基础服务.在解决分布式数据一致性方面, ZooKeepe ...

  8. ZooKeeper基础

    ======================================ZooKeeper 背景======================================ZooKeeper 是一 ...

  9. Zookeeper(一) zookeeper基础使用

    一.Zookeeper是什么 (安装的是3.4.7) ZooKeeper 是一个分布式的,开放源码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现.它提供了简单原始的功能, ...

  10. Zookeeper基础命令操作

    转载链接:https://blog.csdn.net/dandandeshangni/article/details/80558383 安装参考链接https://blog.csdn.net/qiun ...

随机推荐

  1. redis学习五 集群配置

    redis集群配置 0,整体概述      整体来说就是:      1,安装redis      2,配置多个redis实例      3,安装 ruby和rubygems      4,启动red ...

  2. CALayer的基本使用

    CALayer需要导入这个框架:#import <QuartzCore/QuartzCore.h> 一.CALayer常用属性 属性 说明 是否支持隐式动画 anchorPoint 和中心 ...

  3. LNMP 1.2 Nginx编译安装

    Nginx官网是:nginx.org 下载稳定版本 cd /usr/local/src wget http://nginx.org/download/nginx-1.8.0.tar.gz tar zx ...

  4. oracle create user &tablespace & imp

    一.表空间 1.创建表空间 CREATE TABLESPACE 空间名称 DATAFILE '文件名1' SIZE 数字M [,'文件名2' SIZE 数字….] EXTENT MANAGEMENT ...

  5. ListView里面adapter的不同分类的item

    public class PlayAdapter extends BaseAdapter { /** * 标题的item */ public static final int ITEM_TITLE = ...

  6. GSON 报错HibernateProxy. Forgot to register a type adapter? 的解决办法

    使用Gson转换hibernate对象遇到一个问题,当对象的Lazy加载的,就会出现上面的错误.处理方式摘抄自网上,留存一份以后自己看. 网上找到的解决办法,首先自定义一个类继承TypeAdapter ...

  7. 15-struct(构造函数,重载)

    必须充分掌握struct的使用,包括其构造和重载函数的写法: #include <iostream> using namespace std; struct node { int x, y ...

  8. ae中用粒子系统做的特效怎么循环

  9. BMP是可以保存alpha通道的。

    一直以来都不太熟悉BMP格式,今天保存图片的时候发现bmp是可以保存透明通道的,突然想起来以前下载的一些游戏素材贴图里面就有一些bmp格式的贴图.记录一下.

  10. Linux网络服务管理命令

    netstat命令 示例:查看指定的服务是否开启netstat | grep ssh | grep -v grep 网络下载器————wget wget是一个Linux环境下用于从WWW上提取文件的工 ...