一、安装条件

想要安装zookeeper,必须先在linux中安装好jdk。安装步骤见:

https://www.cnblogs.com/expiator/p/9987351.html

二、下载并解压zookeeper压缩包

1. 先进入/usr/local/目录,也可以是其他的目录:

  1. [root@localhost /]# cd /usr/local

2. zookeeper安装包可以在官网下载。

也可以在后面这个地址下载  http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz

如果链接打不开,就先打开 http://mirror.bit.edu.cn/apache/zookeeper, 再选择版本。

在此目录下载zookeeper安装包:

  1. [root@localhost local]# wget http://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.4.13/zookeeper-3.4.13.tar.gz

3. 解压:

  1. [root@localhost local]# tar -zxvf zookeeper-3.4.13.tar.gz

三、编辑配置文件

1.进入conf目录:

  1. [root@localhost local]# cd zookeeper-3.4.13/conf

2. 将zoo_sample.cfg这个文件复制为zoo.cfg (必须是这个文件名)

  1. [root@localhost conf]# cp zoo_sample.cfg zoo.cfg

3. 进入zoo.cfg文件进行编辑

  1. [root@localhost conf]# vim zoo.cfg

4. 按 i 进入编辑模式,修改以下内容:

  1. dataDir=/tmp/zookeeper/data
  2. dataLogDir=/tmp/zookeeper/log

注意:如果想配置集群的话,请在clientPort下面添加服务器的ip。如

server.1=192.168.180.132:2888:3888
server.2=192.168.180.133:2888:3888

server.3=192.168.180.134:2888:3888
如果电脑内存比较小,zookeeper还可以设置成伪集群。也就是全部服务器采用同一个ip,但是使用不同的端口。

5. 在tmp目录创建目录。

  1. [root@localhost conf]# mkdir /tmp/zookeeper
  2.  
  3. [root@localhost conf]# mkdir /tmp/zookeeper/data
  1. [root@localhost conf]# mkdir /tmp/zookeeper/log

6.如果是配置集群,还需要在前面配置过的dataDir路径下新增myid文件

  1. [root@localhost conf]# cd /tmp/zookeeper/data
  2.  
  3. [root@localhost data]# touch myid
  1. [root@localhost data]# vim myid

在data目录下创建文件,文件名为“myid”, 编辑该“myid”文件,并在对应的IP的机器上输入对应的编号。
如在192.168.180.132上,“myid”文件内容就是1。在192.168.180.133上,内容就是2。

四、配置环境变量

1.上面的操作都完事之后,我们需要配置一下环境变量,配置环境变量的命令如下:

  1. [root@localhost zookeeper-3.4.13]# export ZOOKEEPER_INSTALL=/usr/local/zookeeper-3.4.13/
  2. [root@localhost zookeeper-3.4.13]# export PATH=$PATH:$ZOOKEEPER_INSTALL/bin

五、启动zookeeper

1.进入bin目录,并启动zookeep。如果不是在bin目录下执行,启动zookeeper时会报错: bash: ./zkServer.sh:  No such file or directory

注意:  ./zkServer.sh start前面的 .  不可忽略。

  1. [root@localhost local]# cd /usr/local/zookeeper-3.4.13/bin
  2. [root@localhost bin]# ./zkServer.sh start

2.启动成功效果如下:

  1. ZooKeeper JMX enabled by default
  2. Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg
  3. Starting zookeeper ... STARTED

3.zookeeper的服务端启动后,还需要启动zookeeper的客户端:

  1. [root@localhost bin]# ./zkCli.sh

如果是连接多个不同的主机节点,可以使用如下命令:

  1. ./zkCli.sh -server 192.168.180.132:2888

启动成功效果如下:

  1. Connecting to localhost:2181
    ..........
    ..........
    ..........
    Welcome to ZooKeeper!
  2. 2018-10-25 21:04:54,407 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1029] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
  3. JLine support is enabled
  4. 2018-10-25 21:04:54,471 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@879] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
  5. [zk: localhost:2181(CONNECTING) 0] 2018-10-25 21:04:54,501 [myid:] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1303] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x10000712e6f0000, negotiated timeout = 30000
  6.  
  7. WATCHER::
  8.  
  9. WatchedEvent state:SyncConnected type:None path:null

4.查看状态:

  1. [root@localhost bin]# ./zkServer.sh status
  2. ZooKeeper JMX enabled by default
  3. Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg
  4. Mode: standalone

遇到问题怎么解决?

zookeeper的出错日志会记录在 zookeeper.out。

当前处于哪个目录,执行完zkServer.sh start命令, zookeeper.out就会写在哪个目录。

vim zookeeper.out 可以查看报错信息。然后再搜索解决。

六、zookeeper使用

通过 ./zkCli.sh 进入客户端后,就可以使用命令来操作zookeeper了。

1.创建节点

使用create命令,可以创建一个zookeeper节点。

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

其中-s表示顺序节点,-e表示临时节点。默认情况下,创建的是持久节点。

path是节点路径,data是节点数据,acl是用来进行权限控制的。

如下:

创建一个叫做/zk-test的节点,内容是"123"

  1. [zk: localhost:2181(CONNECTED) 0] create /zk-test 123
  2. Created /zk-test

创建/zk-test的子节点book,内容是"233"

  1. [zk: localhost:2181(CONNECTED) 7] create /zk-test/book 233
  2. Created /zk-test/book

2.查看节点内容

使用get命令,可以获取zookeeper指定节点的内容和属性信息。

如下:

  1. [zk: localhost:2181(CONNECTED) 1] get /zk-test
  2. 123
  3. cZxid = 0x3a
  4. ctime = Sun Nov 11 21:50:44 CST 2018
  5. mZxid = 0x3a
  6. mtime = Sun Nov 11 21:50:44 CST 2018
  7. pZxid = 0x3a
  8. cversion = 0
  9. dataVersion = 0
  10. aclVersion = 0
  11. ephemeralOwner = 0x0
  12. dataLength = 3
  13. numChildren = 0

3.查看子节点

使用ls命令可以查看指定节点下的所有子节点

以下查看根目录下的所有子节点:

  1. [zk: localhost:2181(CONNECTED) 2] ls /
  2. [zk-test, zookeeper]

查看zk-test节点的子节点:

  1. [zk: localhost:2181(CONNECTED) 3] ls /zk-test
  2. [book]

4.更新节点内容

使用set命令,更新节点内容。格式为:

set   path  data

其中的data就是要更新的新内容。

  1. [zk: localhost:2181(CONNECTED) 4] set /zk-test 456
  2.  
  3. cZxid = 0x3a
  4. ctime = Sun Nov 11 21:50:44 CST 2018
  5. mZxid = 0x3b
  6. mtime = Sun Nov 11 22:05:20 CST 2018
  7. pZxid = 0x3a
  8. cversion = 0
  9. dataVersion = 1
  10. aclVersion = 0
  11. ephemeralOwner = 0x0
  12. dataLength = 3
  13. numChildren = 0

在输出的信息中,可以发现,dataVersion的值由原来的0 变成了 1,这是因为刚才的更新操作导致该节点的数据版本也发生变更。

6.删除节点

使用delete命令来删除节点,如下:

  1. [zk: localhost:2181(CONNECTED) 11] delete /zk-test
  2. Node not empty: /zk-test

可以发现,一个节点存在子节点时,无法删除该节点。

删除子节点/zk-test/book,如下:

  1. [zk: localhost:2181(CONNECTED) 12] delete /zk-test/book
  2.  
  3. WATCHER::
  4.  
  5. WatchedEvent state:SyncConnected type:NodeDeleted path:/zk-test/book

zookeeper中的watcher会监控节点,当子节点发生变化时会发出通知。此时提示子节点 /zk-test/book删除成功。

继续尝试删除节点 /zk-test,

  1. [zk: localhost:2181(CONNECTED) 13] ls /zk-test
  2. []
  3. [zk: localhost:2181(CONNECTED) 14] delete /zk-test
  4. [zk: localhost:2181(CONNECTED) 15] ls /
  5. []

删除成功。

参考资料 :

《从Paxos到zookeeper分布式一致性原理与实践》

https://blog.csdn.net/zknxx/article/details/52601554

https://blog.csdn.net/21aspnet/article/details/18990891

linux安装zookeeper及使用的更多相关文章

  1. Linux 安装Zookeeper<准备>(使用Mac远程访问)

    阅读本文需要安装JDK 一 Zookeeper简介 zookeeper是用java语言编写的一款为分布式应用所设计的协调服务 zookeeper是apacahe hadoop的子项目 使用zookee ...

  2. linux安装Zookeeper及redis集群

    亲测有效: 1.linux下安装zookeeper:https://www.cnblogs.com/zuolun2017/p/8186254.html 2.linux下安装redis集群:https: ...

  3. Linux 安装Zookeeper<集群版>(使用Mac远程访问)

    阅读本文需要先阅读安装Zookeeper<准备> 一 架构细节 zookeeper集群根据投票选举的机制 选出leader和follower zookeeper集群节点建议是奇数 这里我准 ...

  4. Linux 安装Zookeeper<单机版>(使用Mac远程访问)

    阅读本文需要先阅读安装Zookeeper<准备> 新建目录 mkdir /usr/local/zookeeper 解压 cd zookeeper压缩包所在目录 tar -xvf zooke ...

  5. linux安装zookeeper

    安装环境:Linux:centos6.4Jdk:1.7以上版本 Zookeeper是java开发的可以运行在windows.linux环境.需要先安装jdk.安装步骤:第一步:安装jdk第二步:把zo ...

  6. linux安装zookeeper,安装zkui,zookeeper可视化

    系统要求 支持的平台 ZooKeeper由多个组件组成.某些组件得到广泛支持,其他组件仅在较小的平台上受支持. 客户端是Java客户端库,应用程序使用它连接到ZooKeeper集合. Server是在 ...

  7. linux 安装 zookeeper 集群

    关闭防火墙 systemctl stop firewalld.service systemctl disable firewalld.servicesystemctl status firewalld ...

  8. Linux安装zookeeper集群

    一.单机部署: ①下载.解压 http://archive.apache.org/dist/zookeeper/ tar -zxf zookeeper-3.4.10.tar.gz -C /usr/lo ...

  9. Linux 安装zookeeper

    分享到:   1.下载zokeeper 1.1 官网下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/ 1.2 链接:https:/ ...

随机推荐

  1. dbcp 连接池参数说明

    参考: http://commons.apache.org/proper/commons-dbcp/configuration.html https://www.cnblogs.com/happySm ...

  2. 编写优秀Bug报告的艺术及案例分析

    编写优秀Bug报告的艺术及案例分析 ---Rex Black原著<Fine art of writing a good bug report > ---Kiki翻译于2005/5/28 前 ...

  3. asp.net在配置文件里设置多种编码方式的研究

    我们在做asp.net的程序时,在根目录下肯定会有一个web.config的文件, 有点开发经验的可能都知道,它是配置程序的全局信息的地方, 当然了,也可以在这里做更多的事情,下面我们来研究一下 ,如 ...

  4. android stuido的代码排版的快捷建CTRL+ALT+L

    CTRL+ALT+L 需要主要留意的地方是QQ的与其冲突的 我将qq的中快捷方式给去除

  5. JEECG前后端分离UI框架实战抢先体验(ng2-admin+Angular4+AdminLTE+WebStorm)

    JEECG前后端分离UI框架 (ng2-admin+Angular4+AdminLTE) 关键词: ng2-admin.Angular4.AdminLTE.Nodejs.Jeecg JEECG紧跟技术 ...

  6. 【JEECG技术文档】Online唯一校验使用说明

    1.功能介绍 配置了唯一校验的字段,在录入和编辑页面中,动态查询用户输入值是否存在校验. 要使用online唯一校验功能必须先在online表单开发中配置唯一字段的校验方式为唯一校验. 2.配置唯一校 ...

  7. putty登录显示IP

    登陆服务器 cd vi .bashrc 在尾部加入如下代码 if [ "$SSH_CONNECTION" != '' -a "$TERM" != 'linux' ...

  8. struts2默认临时文件更改

    struts的文件上传mutifile会有一个临时文件地址,如果需要使用自己指定临时文件地址需要在struts.xml中设置以下内容. <constant name="struts.m ...

  9. class 方法

    实例对象调用class方法时返回这个实例对象的isa指针,也就是对应的类对象: 类对象调用class方法时返回这个类对象本身. (注:如果想一直获得一个类的类对象,也就是isa指针,可以调用runti ...

  10. P12, cer, provisioning profile

    p12,本地私钥(实际上证书和私钥可以一起导出成p12,这里我们仅指私钥) cer,证书,即苹果签名后的公钥 provisioning profile描述文件 一个证书对应一个私钥,也就是本地的p12 ...