一、安装条件

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

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

二、下载并解压zookeeper压缩包

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

[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安装包:

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

3. 解压:

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

三、编辑配置文件

1.进入conf目录:

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

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

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

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

[root@localhost conf]# vim zoo.cfg

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

dataDir=/tmp/zookeeper/data
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目录创建目录。

[root@localhost conf]# mkdir /tmp/zookeeper

[root@localhost conf]# mkdir /tmp/zookeeper/data
[root@localhost conf]# mkdir /tmp/zookeeper/log

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

[root@localhost conf]# cd /tmp/zookeeper/data

[root@localhost data]# touch myid
[root@localhost data]# vim myid

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

四、配置环境变量

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

[root@localhost zookeeper-3.4.13]# export ZOOKEEPER_INSTALL=/usr/local/zookeeper-3.4.13/
[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前面的 .  不可忽略。

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

2.启动成功效果如下:

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

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

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

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

./zkCli.sh -server 192.168.180.132:2888

启动成功效果如下:

Connecting to localhost:2181
..........
..........
..........
Welcome to ZooKeeper!
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)
JLine support is enabled
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
[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 WATCHER:: WatchedEvent state:SyncConnected type:None path:null

4.查看状态:

[root@localhost bin]# ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /usr/local/zookeeper-3.4.13/bin/../conf/zoo.cfg
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"

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

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

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

2.查看节点内容

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

如下:

[zk: localhost:2181(CONNECTED) 1] get /zk-test
123
cZxid = 0x3a
ctime = Sun Nov 11 21:50:44 CST 2018
mZxid = 0x3a
mtime = Sun Nov 11 21:50:44 CST 2018
pZxid = 0x3a
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

3.查看子节点

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

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

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

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

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

4.更新节点内容

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

set   path  data

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

[zk: localhost:2181(CONNECTED) 4] set /zk-test 456

cZxid = 0x3a
ctime = Sun Nov 11 21:50:44 CST 2018
mZxid = 0x3b
mtime = Sun Nov 11 22:05:20 CST 2018
pZxid = 0x3a
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0

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

6.删除节点

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

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

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

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

[zk: localhost:2181(CONNECTED) 12] delete /zk-test/book

WATCHER::

WatchedEvent state:SyncConnected type:NodeDeleted path:/zk-test/book

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

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

[zk: localhost:2181(CONNECTED) 13] ls /zk-test
[]
[zk: localhost:2181(CONNECTED) 14] delete /zk-test
[zk: localhost:2181(CONNECTED) 15] ls /
[]

删除成功。

参考资料 :

《从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. UEditor 在ie中报console未定义解决方案

    解决办法:                  1.注释掉该代码               2.或者加入如下代码即可,本人已经测试过,没有问题. window.console = window.con ...

  2. ssm学习的第一个demo---crm(3)

    (1)写查询客户的sql语句 疑问很多,第一个是第五行的后面属性为什么不能加c.:    别名 第二个是对左连接不太明白: 第三个下面的条件,第一个是(马)就够了,为什么还要下面三个(对应的jsp页面 ...

  3. windows 运行hadoop的WordCount报nativeio.NativeIO$Windows.createDirectoryWithMode0(Ljava/lang/String;I)

    window eclipse连接hadoop集群,本地运行wordcount,报以下错误,尝试网络上的方法无果,如:换64JDK,添加hadoop_home,path,以及在hadoop\bin和c: ...

  4. C# 把byte[]输出为图片文件

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/HK_JY/article/details/80320381 /// <summary> ...

  5. VC编译错误,把类误认为是函数

    这段代码是在一个动态库中,我像把这个类导出,于是加上 SC_EXPORTS 宏.class SC_EXPORTS CProtocolCheck{public: CProtocolCheck(void) ...

  6. HTML页面禁用Enter键自动提交表单

    今天在开发页面时,遇到一个小BUG,,如下图 在页面的文本框获取焦点之后,再按键盘上的Enter键,页面form就会自动提交.如下是页面禁止Enter自动提交代码: document.onkeydow ...

  7. delphi异常捕获try except语句 和 try finally语句用法

    原文地址:delphi try except语句 和 try finally语句用法以及区别作者:1865898133 一直写程序都没管他们,也尽量很少用,今天终于想把他给弄个明白,在网上找来,记下! ...

  8. 设计模式入门——Head First

    设计模式是被前人发现.经过总结形成了一套某一类问题的一般性解决方案.使用模式最好的方式是:把模式装进脑子,然后在设计和已有的应用中,寻找何处可以使用它们.以往是代码复用,现在是经验复用. 从模拟鸭子游 ...

  9. React.createElement: type is invalid -- expected a string (for built-in components) or a class/function (for composite components) but got: undefined.

    昨天在项目中,重新封装组件时,引用了原来的一个子组件,但发现子组件在其他页面正常,在新的组件里面就发生保存, 然后把子组件注释,随便显示其div元素也正常,纠结了很久,最后发现引用的方式有问题 子组件 ...

  10. Delphi动态配置ODBC数据源--SQL Server版本

    (摘自)http://jxlearnew.blog.163.com/blog/static/549786592007102451431413/ 这里介绍一种用Delphi来实现动态注册的方法,希望对各 ...