0
点赞
收藏
分享

微信扫一扫

Linux安装zookeeper以及伪集群


一、安装条件

想要安装zookeeper,必须先在linux中安装好jdk

二、下载并解压zookeeper压缩包

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

[root@VM_0_11_centos software]# cd /usr/wangjian/software

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

也可以在后面这个地址下载  ​​http://mirror.bit.edu.cn/apache/zookeeper​​选择版本。

我用的少apache-zookeeper-3.5.6-bin.tar.gz

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

3. 解压:

[root@VM_0_11_centos software]# tar -zxvf apache-zookeeper-3.5.6-bin.tar.gz

4.重命名

  [root@VM_0_11_centos software]# mv apache-zookeeper-3.5.6-bin.tar.gz zookeeper

三、编辑配置文件

1.进入conf目录:

[root@VM_0_11_centos zookeeper]# cd /conf

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

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

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

[root@VM_0_11_centos conf]# vim zoo.cfg

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

dataDir=/tmp/zookeeper/data
dataLogDir=/tmp/zookeeper/log

5. 在tmp目录创建目录。

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

[root@VM_0_11_centos conf]# mkdir /tmp/zookeeper/data

[root@VM_0_11_centos conf]# mkdir /tmp/zookeeper/log

四、配置环境变量

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

[root@VM_0_11_centos conf]# vim /etc/profile

Linux安装zookeeper以及伪集群_zookeeper

五、启动zookeeper

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

 

[root@VM_0_11_centos bin]# ./zkServer.sh start

2.启动成功效果如下:

ZooKeeper JMX enabled by default
Using config: /usr/wangjian/software/zookeeper/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED

3.查看状态:
 

[root@VM_0_11_centos bin]# ./zkServer.sh status

ZooKeeper JMX enabled by default
Using config: /usr/wangjian/software/zookeeper/bin/../conf/zoo.cfg
Client port found: 2181. Client address: localhost.
Mode: standalone

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

[root@VM_0_11_centos bin]# ./zkCli.sh 
启动成功效果如下:Welcome to ZooKeeper!
JLine support is enabled
2020-04-01 13:39:22,689 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@959] - Socket connection established, initiating session, client: /0:0:0:0:0:0:0:1:39848, server: localhost/0:0:0:0:0:0:0:1:2181
2020-04-01 13:39:22,721 [myid:localhost:2181] - INFO [main-SendThread(localhost:2181):ClientCnxn$SendThread@1394] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x17133b69c49000f, negotiated timeout = 30000

WATCHER::

WatchedEvent state:SyncConnected type:None path:null

关于集群:这里我是配的伪集群.

和单机版的区别,1.不需要配置环境变量                                                                             2.dataDir目录下需要新建一个文件,文件内容就是server.1的1,                                                   3.每个zoo.cfg都需要改dataDir和logDir地址,以及2181端口号(2181,2182,2183)                   4.server.1=ip:端口:端口,这里的Ip如果用的是云服务器,一定要写内网ip

 

六、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 /
[]

删除成功。

举报

相关推荐

0 条评论