kafka环境搭建之zookeeper集群部署

安装 Java 环境

在安装 Kafka 之前,先确保Linux 环境上是否有 Java 环境,使用 java -version 命令查看 Java 版本,推荐使用Jdk 1.8

Centos8 安装 jdk8

linux 使用 yum 直接安装,环境变量自动配置好

配置yum源

查看是否已安装
看到下面结果,说明已经安装配置 jdk

在这里插入代码片

查看jdk1.8最新版本

[root@MiWiFi-RA80-srv yum.repos.d]# yum list java-1.8*      

查看jdk1.8最新版本
安装jdk1.8

yum install java-1.8.0-openjdk* -y

查看当前jdk版本

java -version

安装 Zookeeper 环境

Kafka 的底层使用 Zookeeper 储存元数据,确保一致性,所以安装 Kafka 前需要先安装 Zookeeper,Kafka 的发行版自带了 Zookeeper ,可以直接使用脚本来启动

Zookeeper 单机搭建

  1. 直接从 https://dlcdn.apache.org/zookeeper/stable/ 官网下载一个稳定版本的Zookeeper ,这里我使用的是 3.8.4,(3.5以后选择后缀带bin的版本),

  2. 下载完成后,在 Linux 系统中的 /usr/local 目录下创建zookeeper 文件夹,

  3. 使用xftp 工具(xftp 和 xshell 工具都可以在官网https://www.netsarang.com/zh/xshell/ 申请免费的家庭版)把下载好的 zookeeper 压缩包放到 /usr/local/zookeeper 目录下。

  4. 解压

    • tar.gz 包

      • 直接使用 tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz解压即可
    • zip 包

      • Linux 中是否有 unzip 工具,
        • 如果没有的话,使用 yum install unzip 安装 zip 解压工具,
      • 完成后使用 unzip apache-zookeeper-3.8.4-bin.tar.gz 解压即可。
  5. 解压完成后,cd 到 /usr/local/zookeeper/apache-zookeeper-3.8.4-bin ,创建一个 data 文件夹,

  6. 然后进入到 conf 文件夹下,使用 mv zoo_sample.cfg zoo.cfg 进行重命名操作

  7. 然后使用 vi 打开 zoo.cfg ,更改一下dataDir = /usr/local/zookeeper/apache-zookeeper-3.8.4-bin/data ,保存。

  8. 进入bin目录,启动服务输入命令./zkServer.sh start 输出下面内容表示搭建成功

  9. 使用 ./zkServer.sh status 可以查看状态信息。

  10. 关闭服务输入命令,./zkServer.sh stop。
    在这里插入图片描述

Zookeeper 集群搭建

需求:需要三个服务器
可以使用CentOS8 安装三个虚拟机,并为各自的虚拟机分配了1GB的内存,在每个 /usr/local/ 下面新建 zookeeper 文件夹,把 zookeeper 的压缩包挪过来,解压,完成后会有 zookeeper-3.4.10-bin 文件夹,进入到文件夹,新建两个文件夹,分别是 data 和log文件夹

上一节单机搭建中已经创建了一个data 文件夹,就不需要重新创建了,直接新建一个 log 文件夹,对另外两个新增的服务需要新建这两个文件夹。
(这里我为了方便直接用上面单机搭建的虚拟机快照克隆了两份)

设置集群

新建完成后,编辑 conf/zoo.cfg 文件,三个文件的内容如下

tickTime=2000
initLimit=10
syncLimit=5
dataDir=/usr/local/zookeeper/apache-zookeeper-3.8.4-bin/data
dataLogDir=/usr/local/zookeeper/apache-zookeeper-3.8.4-bin/log
clientPort=12181
server.1=192.168.31.25:12888:13888
server.2=192.168.31.70:12888:13888
server.3=192.168.31.17:12888:13888
  • server.1 中的 1 表示服务器的标识也可以是其他数字,表示这是第几号服务器,这个标识要和下面我们配置的 myid的标识一致
  • 192.168.31.25:12888:13888 为集群中的 ip 地址,
    • 第一个端口表示的是 master 与 slave 之间的通信接口,默认是2888
    • 第二个端口是leader选举的端口,集群刚启动的时候选举或者leader挂掉之后进行新的选举的端口,默认是 3888
  • tickTime:这个时间是作为 Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳。
  • initLimit:这个配置项是用来配置 Zookeeper接受客户端(这里所说的客户端不是用户连接 Zookeeper服务器的客户端,而是 Zookeeper 服务器集群中连接到 Leader的Follower服务器初始化连接时最长能忍受多少个心跳时间间隔数。当已经超过 5个心跳的时间(也就是tickTime)长度后Zookeeper服务器还没有收到客户端的返回信息,那么表明这个客户端连接失败。总的时间长度就是 5*2000=10秒
  • syncLimit: 这个配置项标识 Leader 与Follower之间发送消息,请求和应答时间长度,最长不能超过多少个tickTime 的时间长度,总的时间长度就是5*2000=10秒
  • dataDir快照日志的存储路径
  • dataLogDir事务日志的存储路径,如果不配置这个那么事务日志会默认存储到dataDir指定的目录,这样会严重影响zk的性能,当zk吞吐量较大的时候,产生的事务日志、快照日志太多
  • clientPort::这个端口就是客户端连接 Zookeeper 服务器的端口,Zookeeper会监听这个端口,接受客户端的访问请求。
创建 myid 文件

在了解完其配置文件后,现在来创建每个集群节点的 myid ,我们上面说过,这个 myid 就是 server.1 的这个 1 ,类似的,需要为集群中的每个服务都指定标识,使用 echo 命令进行创建

# server.1
echo "1" > /usr/local/zookeeper/apache-zookeeper-3.8.4-bin/data/myid
# server.2
echo "2" > /usr/local/zookeeper/apache-zookeeper-3.8.4-bin/data/myid
# server.3
echo "3" > /usr/local/zookeeper/apache-zookeeper-3.8.4-bin/data/myid
启动服务并测试

配置完成,为每个 zk 服务启动并测试

启动服务(每台都需要执行)

cd /usr/local/zookeeper/zookeeper-3.4.10/bin
./zkServer.sh start

如果出现启动成功到查询zk状态仍异常可以考虑以下几种可能:

  1. zoo.cfg文件配置出错: dataLogDir指定的目录未被创建;
  2. myid文件中的整数格式不对,或者与zoo.cfg中的server整数不对应
  3. 防火墙未关闭;
  4. 2181端口被占用;
  5. zoo.cfg文件中主机名出错;
  6. hosts文件中,本机的主机名有两个对应,只需保留主机名和ip地址的映射(原文链接https://blog.csdn.net/u010657789/article/details/51393517)

各个版本的虚拟机下Linux关于防火墙的命令有所不同,以下为CentOs8 查看防火墙相关命令:

#查看防火墙状态
systemctl status firewalld.service
#开启防火墙
systemctl start firewalld.service
#关闭防火墙
systemctl stop firewalld.service
#禁用防火墙
systemctl disable firewalld.service

检查服务状态
使用 ./zkServer.sh status 命令检查服务状态

192.168.31.25–follower
在这里插入图片描述
192.168.31.70–follower
在这里插入图片描述
192.168.31.17–leader
在这里插入图片描述
zk集群一般只有一个leader,多个follower,主一般是相应客户端的读写请求,而从主同步数据,当主挂掉之后就会从follower里投票选举一个leader出来。

如此如此,zk环境就算搭建好了,接下来可以去搭kafka集群了~

  • 21
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值