写在前面

本系列文章索引以及一些默认好的条件在 传送门

在配置Zookeeper之前,建议先配置Hadoop集群,具体的操作流程博主已更新完成,链接

step1 Zookeeper安装包的下载

Zookeeper的安装包版本不太相同,大致分为有编译过的和没有编译过的(如有错请留言指正
一般情况下对于我们在解压配置就能使用的情况下,我们可以下载编译之后的版本,比如在官网上:
在这里插入图片描述
下面代表着源代码,我们应该选择不在红框之内的
Zookeeper仓库
本文以3.5.9为例,应该下载上方连接中的:
在这里插入图片描述
这个版本的解压后和其他未编译过的有个显著的不同:在解压后有一个lib文件夹,通常里面保存着应该会用到的文件等
下载速度较快,不再网盘分享

step2 关闭防火墙

如果防火墙处于打开的状态,会影响到虚拟机之间的互相访问,以及从主机通过web浏览器查看各个服务器节点的状态
命令:

systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld

step3 解压配置Zookeeper

1 解压并创建修改/conf/zoo.cfg文件

将下载好的文件放到master节点的/usr/local/之下
然后解压文件,命令:

tar -zxvf apache-zookeeper-3.5.9-bin.tar.gz

解压之后,将文件夹的名字去掉版本号:
mv apache-zookeeper zookeeper

然后跳转到./zookeeper/conf下,将官方给的zoo.cfg示例文件改名:

cp zoo_sample.cfg zoo.cfg

然后编辑zoo.cfg
大致改为:
在这里插入图片描述
切勿盲目CV,记得修改为自己的主机名

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/usr/local/zookeeper/data/
# the port at which the clients will connect
clientPort=2181
# master
server.1=0.0.0.0:2881:3881
server.2=slave01-315:2881:3881
server.3=slave02-315:2881:3881

2 创建并修改/data/myid

在zookeeper根目录下,我们再创建一个data文件夹
mkdir -p /usr/local/zookeeper/data
然后创建并编辑myid文件

cd /usr/local/zookeeper/data
touch myid
vim myid

在master节点的myid中,写入一个数字1
注意不得加任何空格,任何注释,必须单纯一行一列一个字符’1’

step4 配置文件传送到其他节点

我们需要将从master的文件放到slave1,slave2上

scp -r /usr/local/zookeeper slave1:/usr/local
scp -r /usr/local/zookeeper slave2:/usr/local

在slave1上,我们需要把/data/myid中的内容改为2
在slave2上,我们需要把/data/myid中的内容改为3
注意不得加任何空格,任何注释,必须单纯一行一列一个字符’1’
在slave1上,我们需要把/conf/zoo.cfg改成:
在这里插入图片描述
切勿盲目CV,记得修改为自己的主机名

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/usr/local/zookeeper/data/
# the port at which the clients will connect
clientPort=2181

server.1=master315:2881:3881
server.2=0.0.0.0:2881:3881
server.3=slave02-315:2881:3881

在slave2下,我们需要将/conf/zoo.cfg文件修改为:
在这里插入图片描述
切勿盲目CV,记得修改为自己的主机名

# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial 
# synchronization phase can take
initLimit=10
# The number of ticks that can pass between 
# sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
# do not use /tmp for storage, /tmp here is just 
# example sakes.
dataDir=/usr/local/zookeeper/data/
# the port at which the clients will connect
clientPort=2181

server.1=master315:2881:3881
server.2=slave01-315:2881:3881
server.3=0.0.0.0:2881:3881

如果是小白从头开始配的话,应该不会出现2181端口被占用的情况,如果说自己的2181端口被占用,可以kill -9该进程
查看进程是否被占用:
netstat -nltp | grep 2181
若显示空白则恭喜你不需要进行任何操作
若显示除了某进程占用该端口,应该kill -9 进程号

step5 设置环境变量

我们修改~/.bashrc文件

vim ~/.bashrc
加入:
export PATH=$PATH:/usr/local/zookeeper/bin
然后:
source ~/.bashrc

现在应该使得该文件生效了

step6 启动zookeeper

zkServer.sh start
这时,我们查看zookeeper/data/下的所有文件:

cd /usr/local/zookeeper/data
ls -laF

发现除了myid还会有另外的若干文件(version-2文件夹&&zookeeper_server.pid),这是请注意:
如果不是通过命令使得zookeeper自动关闭的,在下次启动前均需删除该目录下除了myid的所有文件
在三个节点均启动zookeeper集群
启动命令是:zkServer.sh start
重启命令是:zkServer.sh restart
关闭命令是:zkServer.sh stop
查看状态命令是:zkServer.sh status

注意,在我们依次启动节点的zookeeper的过程中,可能会遇到首先启动的节点的日志文件中出现拒绝连接的情况,这时请忽略,原因是:
后续节点未启动,所以会导致和其他未开启的节点通信失败导致拒绝连接,我们应当查看最后启动zookeeper的结点的日志文件(/usr/local/zookeeper/logs/),

step7 启动成功及状态查看

在我们成功启动集群之后,应该会看到:
master
在这里插入图片描述

slave1:
在这里插入图片描述

slave2:
在这里插入图片描述

出现started则证明启动成功,我们查看状态:

master:
在这里插入图片描述
slave1:
在这里插入图片描述

slave2:
在这里插入图片描述

在此,发现master为leader,其余两个节点为follower
这里的leader由zookeeper内部选举产生,谁是leader均有可能,不必太在意

step8 验证zookeeper安装

在每个节点均输入:jps来查看相关进程
master:
在这里插入图片描述
slave1:
在这里插入图片描述
slave2:
在这里插入图片描述
到这里进本就证明安装没大问题了
但是为了严谨一点,我们测试下功能

step9 zookeeper功能测试

我们进入zookeeper的命令行工具:
红框是命令zkCli.sh -server master315:2181
在这里插入图片描述
在箭头所示区域输入:
create /hello world

get /hello
在这里插入图片描述
可以发现莫得问题,然后就可以退出了
输入:
quit
在这里插入图片描述

到此,Zookeeper安装结束
如有问题可以 留言 or 私信 or q_2649432030
在这里插入图片描述
在这里插入图片描述

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐