一、安装条件

想要安装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. []

删除成功。

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

  1. linux安装dubbo与zookeeper(一)

    所需工具: jdk1_7.tar.gz dubbo-admin-2.5.4.war(此文件不需解压) zookeeper.tar.gz tomcat7.0.tar.gz 以上文件下载需根据自己的电脑系 ...

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

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

  3. 在 Linux 多节点安装配置 Apache Zookeeper 分布式集群

    规划: 三台物理服务器就形成了(法定人数).对于高可用性集群,您可以使用高于3的任何奇数.例如,如果设置5台服务器,则集群可以处理两个故障节点等. 物理服务器需要开启的端口 2888 , 3888 和 ...

  4. 使用docker-compose一起安装kafka(zookeeper)

    要先安装docker-compose Linux安装docker-compose 参考:https://www.cnblogs.com/pxblog/p/15049362.html 创建docker- ...

  5. 搜狗输入法linux安装 以及 12个依赖包下载链接分享

    搜狗输入法linux安装版,先安装各种依赖包,大概12个依赖,可能中途还需要其他依赖,可以效仿解决依赖问题.如图这12个文件要是手动点击下载,那也太笨点了,我们要用shell命令批量下载.命令如下:w ...

  6. linux安装php

    接上篇:linux安装apache 一.安装php 先安装libxml2库 [root@ctxsdhy package]# yum -y install libxml2-devel 最新地址在:htt ...

  7. linux安装oracle11g

    准备oracle安装文件 Oracle11gR2包含两个文件linux_11gR2_database_1of2.zip和linux_11gR2_database_2of2.zip,将这两个文件通过SS ...

  8. Windows安装和使用zookeeper

    之前整理过一篇文章<zookeeper 分布式锁服务>,本文介绍的 Zookeeper 是以 3.4.5 这个稳定版本为基础,最新的版本可以通过官网 http://hadoop.apach ...

  9. TODO:Linux安装PHP MongoDB驱动

    TODO:Linux安装PHP MongoDB驱动 PHP利于学习,使用广泛,主要适用于Web开发领域. MongoDB的主要目标是在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统 ...

随机推荐

  1. 在MVC视图中将数字转换为string类型后保留两位小数

    <td>@item.recharge_reward_rate.ToString("F2")%</td> @*保留小数两位*@ <td>@item ...

  2. 跳跃空间(链表)排序 选择排序(selection sort),插入排序(insertion sort)

    跳跃空间(链表)排序 选择排序(selection sort),插入排序(insertion sort) 选择排序(selection sort) 算法原理:有一筐苹果,先挑出最大的一个放在最后,然后 ...

  3. CodeForces - 1236B (简单组合数学)

    题意 有n种物品和m个背包,每种物品有无限个,现将若干个物品放到这些背包中,满足: 1.每个背包里不能出现相同种类的物品(允许有空背包): 2.在所有的m个背包中,每种物品都出现过. 求方案数,对10 ...

  4. 扎西平措 201571030332 《面向对象程序设计 (JAVA)》第二周 学习总结

    面向对象程序设计 (JAVA)>第二周 学习总结 项目 内容 这个作业属于哪个课程 <任课教师博客主页链接>https://www.cnblogs.com/nwnu-daizh/ 这 ...

  5. Django 连接数据库

    配置数据库 Django 默认连接的是SQLite,如果想要连接MySQL则需修改配置:在 setting.py 中找到数据库的默认配置: DATABASES = { 'default': { 'EN ...

  6. LeetCode236. 二叉树的最近公共祖先

    * @lc app=leetcode.cn id=236 lang=cpp  *  * [236] 二叉树的最近公共祖先  *  * https://leetcode-cn.com/problems/ ...

  7. unique_ptr的实现原理

    在C++11中有两个智能指针类型来管理动态对象,share_ptr允许多个指针指向同一个对象,unique_ptr则“独占”所指对象. 我们知道指针或引用在离开作用域时是不会进行析构的,但是类在离开作 ...

  8. C# 原子操作理解

    C#内置提供的原子操作 Interlocked.Increment:以原子操作的形式递增指定变量的值并存储结果. Interlocked.Decrement:以原子操作的形式递减指定变量的值并存储结果 ...

  9. 【12月13日】A股ROE最高排名

    个股滚动ROE = 最近4个季度的归母净利润 / ((期初归母净资产 + 期末归母净资产) / 2). 查看更多个股ROE最高排名 中公教育(SZ002607) - ROE_TTM:92.66% - ...

  10. springboot2 中Druid和ibatis(baomidou) 遇到org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.iflytek.pandaai.service.multi.mapper.TanancyMapper

    调用mapper中任何方法都会出现类似的错误 org.apache.ibatis.binding.BindingException: Invalid bound statement (not foun ...