一、单机安装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 指定数据存放的位置
进入目录/opt/module/apache-zookeeper-3.5.7-bin,新建一个目录mkdir zkData,进入zkdata目录,新建配置文件vim myid,(注意,名字必须跟我写的这些名字一致!),将该配置文件中写入”2“,没错,单写一个2!不要有空格和空行
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
此时便已经配置完成,可以尝试启动集群,注意:启动的集群数量必须大于总集群数量的一半!
启动后正确的显示为(此处我启动了两个集群):
因为我这里配置了三台机器,如果只启动一台(小于总数的一半),查看状态时就会出现以下情况:
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 /
2、创建节点并存放数据
create /[节点名字] [数据]
数据部分可以不写,那么便是创建一个空的节点
3、获取
获取节点的数据
get /[节点名字]
4、设置
set /[节点名字] [数据]
5、删除
delete /[节点名字]
6、删除全部
当某一个节点下存在子节点时,这时便无法使用delete将该节点删除,可以使用deleteall来进行删除
deleteall /[节点名字]
7、创建字节的
create /[父节点名字]/[子节点名字]
8、创建临时顺序节点
create -e /[名字] 临时节点。退出后,临时节点便会消失
create -s /[名字] 顺序节点
create -es /[名字] 临时顺序节点