Zookeeper安装

内容概要

一、单节点安装
二、单节点伪分布式安装(不建议)
三、完全分布式安装
四、常见问题

准备工作

1、由于zookeeper使用java编写,所以需要java运行环境,这也就意味着,在安装zookeeper之前需要安装jdk
2、下载zookeeper并上传到服务器。

开始安装

Linux目录结构
在这里插入图片描述

一、单节点安装在这里插入图片描述

1、解压

tar -zxvf zookeeper-3.4.5.tar.gz -C ../app

查看解压结果
在这里插入图片描述

2、进行配置

由于配置时需要指定zookeeper数据存放位置,日志文件[可选]存放位置。因此如果需要进行数据存放的位置不存在的话,需要新建目录。
我新建的目录
1 、 z o o k e e p e r 数 据 文 件 存 放 到 z o o k e e p e r 安 装 目 录 ( 解 压 目 录 ) / d a t a \color{red}{1、zookeeper数据文件存放到zookeeper安装目录(解压目录)/data} 1zookeeperzookeeper()/data
2 、 日 志 文 件 存 放 到 z o o k e e p e r 安 装 目 录 ( 解 压 目 录 ) / l o g s \color{red}{2、日志文件存放到zookeeper安装目录(解压目录)/logs} 2zookeeper()/logs
所以需要在安装目录下执行

mkdir data
mkdir logs

进入conf目录,拷贝一份配置文件,并重命名为zoo.cfg

cp zoo_sample.cfg zoo.cfg

在这里插入图片描述
编辑配置文件vi zoo.cfg

# 指定数据存放位置
dataDir=/root/app/zookeeper-3.4.5/data
# 指定日志文件存放位置
dataLogDir=/root/app/zookeeper-3.4.5/logs

# zookeeper默认端口2181
clientPort=2181

# 单节点部署zookeeper可以不用配置,但是建议配置上
# 因为如果以后想要扩展为分布式的话,会方便一些
server.id=IP:2888:3888

在这里插入图片描述
cd到data目录,新建一个myid文件,将配置文件中的id(server.{id})写入myid

echo 1 > myid

在这里插入图片描述

3、测试安装结果

启动zookeeper

./zkServer.sh start

查看启动状态

./zkServer.sh status

在这里插入图片描述

二、单节点伪分布式安装(不建议)

停止掉单节点安装后启动的zookeeper

./zkServer.sh stop

1、拷贝zookeeper

将安装的zookeeper重命名为zookeeper1,然后拷贝多几份作为伪分布式安装用

mv zookeeper-3.4.5/ zookeeper1
cp -r zookeeper1/ zookeeper2/
cp -r zookeeper1/ zookeeper3/

2、修改配置文件

分别将里面的配置文件中的参数修改为正确的值

# zookeeper1
# 修改dataDir
dataDir=/root/app/zookeeper1/data
# 修改dataLogDir
dataLogDir=/root/app/zookeeper1/logs
# 修改客户端端口
clientPort=2181
# 修改zookeeper列表
server.1=IP:2888:3888
server.2=IP:4888:5888
server.3=IP:6888:7888

# ############################
# zookeeper2
dataDir=/root/app/zookeeper2/data
dataLogDir=/root/app/zookeeper2/logs
clientPort=2182
server.1=IP:2888:3888
server.2=IP:4888:5888
server.3=IP:6888:7888

# ############################
# zookeeper3
dataDir=/root/app/zookeeper3/data
dataLogDir=/root/app/zookeeper3/logs
clientPort=2183
server.1=IP:2888:3888
server.2=IP:4888:5888
server.3=IP:6888:7888

在这里插入图片描述

3、设置myid

在对应的zookeeper安装目录数据文件夹下,将各自的id保存到myid文件中
由于zookeeper是拷贝过来的,所以可能存在之前的数据文件,需要删掉。
然后设置myid
在这里插入图片描述

4、测试安装结果

启动zookeeper

zkServer.sh start

查看zookeeper状态

zkServer.sh status

使用jps查看启动的zookeeper进程
在这里插入图片描述

三、完全分布式安装

全分布式安装和单节点伪分布式安装几乎一样。因为是在不同的服务器,所以客户端端口可以都使用相同的2181,而且服务器列表的端口也可以使用相同的2888,3888。

四、常见问题

1、使用zkCli连接zookeeper

如果不加任何参数,默认连接到本地2181

./zkCli.sh -timeout 5000 -server IP:PORT

连接上zookeeper后,使用命令时常常忘记有哪些命令,这时可以使用help
在这里插入图片描述

2、访问不了zookeeper

可能原因:
(1)防火墙没有关闭,或防火墙开启着但是端口没有打开
(2)端口被占用,zookeeper压根没有启动起来
(3)没有安装jdk,zookeeper没有启动起来
解决办法:
(1)如果是内网服务器,为了避免麻烦,可以直接将防火墙关闭;
如果不能够关闭防火墙,则需要手动打开相应端口。
(2)在不了解占用端口的是什么应用,或不了解应用有什么功能的情况下,建议则修改zookeeper客户端端口。
(3)安装jdk

3、获取值时无权限,设置ACL失败

删除掉该path,使用zkCli连接上zookeeper,手动创建一个相同path

4、zookeeper在各服务器正常启动,但是却一直报没有运行

如果已经排除了是防火墙的问题,那么可能就是配置server列表时使用的不是ip,而是主机名
ps:因为这个问题,坑了我不少时间,,。。检查了防火墙已经关闭,配置文件也看不出有啥毛病。就是一直提示没有在运行,多番尝试后,换成主机名,最终zookeeper集群正常工作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值