zookeeper安装以及常用命令

174 阅读3分钟

一、单机安装zookeeper

安装前准备

  • 虚拟机中安装好jdk
  • 将zookeeper的压缩包拷贝到虚拟机当中

1、解压zookeeper

tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C 【/home/zookeeper/】
最后面的是解压的地址,后期需要用上

2、修改配置文件

进入至该目录

cd /apache-zookeeper-3.5.7-bin/conf  

打开 zoo_sample.cfg 配置文件

vim zoo_sample.cfg

修改配置。这里根据你的路径填写,zkData是待会需要创建的一个用来存放数据的目录

dataDir=【/home/zookeeper/zookeeper-3.5.7/zkData】

在apache-zookeeper-3.5.7-bin目录下创建zmData

mkdir zkData

安装完成

二、集群版配置zookeeper

前提准备:hadoop集群102,103,104并配置好集群

1、安装解压zookeeper

自己先下载好zookeeper的压缩包,上传至目标位置opt/software

解压 tar -zxvf kafka_2.12-3.0.0.tgz -C /opt/module/

2、修改配置

进入目录/opt/module/apache-zookeeper-3.5.7-bin/conf,将其中的配置文件zoo_sample.cfg改名为zoo.cfg,mv zoo_sample.cfg zoo.cfg

修改该配置文件vim zoo.cfg

dataDir=/opt/module/apache-zookeeper-3.5.7-bin/zkData   指定数据存放的位置

image.png

进入目录/opt/module/apache-zookeeper-3.5.7-bin,新建一个目录mkdir zkData,进入zkdata目录,新建配置文件vim myid,(注意,名字必须跟我写的这些名字一致!),将该配置文件中写入”2“,没错,单写一个2!不要有空格和空行

image.png

3、同步

同步的前提是已经配置了xsync,具体配置过程在hadoop集群搭建时有写!

进入目录/opt/module,使用指令 xsync apache-zookeeper-3.5.7-bin/,将hadoop102中所有配置的内容同步至hadoop103与hadoop104中

进入hadoop103中将/opt/module/apache-zookeeper-3.5.7-bin/zkData目录下的myid配置文件改成3,将hadoop104中的myid改成4

4、配置集群

在hadoop102机中,进入/opt/module/apache-zookeeper-3.5.7-bin/conf目录下,修改zoo.cfg配置文件vim zoo.cfg,添加内容:

server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888

解释:
server.A=B:C:D
A:之前在myid中配置的内容,表示这是第几号服务器
B:服务器的地址,因为之前有写过地址映射,在hadoop集群配置当中有写
C:是当前服务器与集群的主服务器进行交换信息的端口
D:当c出现问题时,便使用这个端口

将该配置文件同步到其余两个机器上xsync zoo.cfg

此时便已经配置完成,可以尝试启动集群,注意:启动的集群数量必须大于总集群数量的一半!

启动后正确的显示为(此处我启动了两个集群):

image.png

image.png

因为我这里配置了三台机器,如果只启动一台(小于总数的一半),查看状态时就会出现以下情况:

image.png

5、编写脚本来进行同时启动与停止操作

之前在配置hadoop集群时也写过xsync脚本

/bin目录下,创建一个zk.sh文件,脚本内容如下:

#!/bin/bash

case $1 in
"start"){
        for i in hadoop102 hadoop103 hadoop104
        do
                echo -------------- zookeeper $i 启动 ---------------
                ssh $i "/opt/module/apache-zookeeper-3.5.7-bin/bin/zkServer.sh start"
        done
}
;;
"stop"){
        for i in hadoop102 hadoop103 hadoop104
        do
                echo -------------- zookeeper $i 停止 ---------------
                ssh $i "/opt/module/apache-zookeeper-3.5.7-bin/bin/zkServer.sh stop"
        done
}
;;
"status"){
        for i in hadoop102 hadoop103 hadoop104
        do
                echo -------------- zookeeper $i 状态 ---------------
                ssh $i "/opt/module/apache-zookeeper-3.5.7-bin/bin/zkServer.sh status"
        done
}
;;
esac

配置完脚本之后,启动便可以使用指令zk.sh start来进行一次性启动三台机器,停止和查看状态操作与其类似

三、常用指令

1、打开与关闭

打开和关闭都需要进入bin目录下进行操作。但是也可以在指令前加上 ‘bin\’

比如 bin/zkServer.sh start

1、开启服务端

./zkServer.sh start

2、关闭服务端

./zkServer.sh stop

3、启动客户端

 ./zkCli.sh -server localhost:2181

4、退出客户端

quit

2、查看与创建

打开客户端之后,便可以查明目录或者在目录下创建节点存放数据

1、查看所有节点

通过ls / 来进行查看

ls /

image.png

2、创建节点并存放数据

create /[节点名字] [数据]
数据部分可以不写,那么便是创建一个空的节点

image.png

3、获取

获取节点的数据

get /[节点名字]

image.png

4、设置

set /[节点名字] [数据]

image.png

5、删除

delete /[节点名字]

image.png

6、删除全部

当某一个节点下存在子节点时,这时便无法使用delete将该节点删除,可以使用deleteall来进行删除

deleteall /[节点名字]

7、创建字节的

create /[父节点名字]/[子节点名字]

image.png

8、创建临时顺序节点

create -e /[名字]  临时节点。退出后,临时节点便会消失
create -s /[名字]  顺序节点
create -es /[名字] 临时顺序节点