Apache  Kafka安装详细教程

 更新时间:2026年03月19日 16:11:48   作者:IvanCodes  
Apache Kafka 是一个分布式流处理平台,被广泛应用于大数据实时处理领域,本文将详细介绍如何在集群环境中部署 Kafka 4.0.1 版本,感兴趣的朋友跟随小编一起看看吧

这次带来了Kafka 集群部署与配置,手把手教你完成 kafka安装,从下载安装到环境配置,快速搭建 Kafka 运行环境。

前言

Apache Kafka 是一个分布式流处理平台,被广泛应用于大数据实时处理领域。本文将详细介绍如何在集群环境中部署 Kafka 4.0.1 版本。

在正式开始之前,请务必注意以下两点:

1.前置依赖:Kafka 强依赖于 ZooKeeper 来进行集群管理和元数据存储,虽然新版推出了 KRaft 模式,但很多传统部署仍在使用 ZK。如果你还没有搭建好 ZooKeeper 集群,请务必先移步阅读并完成《二、ZooKeeper 集群部署搭建》
2.操作范围:本文中涉及到的所有配置文件修改(特别是 server.properties 中的特定参数),必须在你的多台虚拟机(本文以我自己的uhadoop01, uhadoop02, uhadoop03为例)上分别进行配置和修改,绝不是一台虚拟机就能解决的。

第一步:下载 Kafka 安装包

首先,我们需要从 Apache Kafka 官网下载对应版本的二进制安装包。

官网下载链接:https://kafka.apache.org/community/downloads/

打开上述链接,向下滚动找到你需要的版本(本教程以最新的 4.0.1 版本为例)。
由于我们主要是运行 Kafka,而不是去编译它的源码,所以一定要选择 Binary download 下的链接。推荐选择 Scala 2.13 编译的版本。
点击下载 kafka_2.13-4.0.1.tgz 到你的本地,或者直接在服务器上使用 wget 命令下载。

第二步:解压与重命名

将下载好的压缩包上传到你的第一台虚拟机(例如 uhadoop01)的指定目录,本教程假设你将安装包放在了 /export/softwares/ 目录下。

1. 解压安装包
进入存放压缩包的目录,并将其解压到我们专门存放服务程序的 /export/server/ 目录下:

cd /export/softwares/
tar -zxvf kafka_2.13-4.0.1.tgz -C /export/server/

2. 重命名目录
为了后续配置环境变量和操作的方便,我们将解压后较长的目录名重命名为一个简短的名字 kafka

cd /export/server/
mv kafka_2.13-4.0.1/ kafka
ls

执行 ls 命令后,你应该能看到 kafka 目录已经和 hadoophive 等并列存在了。

第三步:修改 Kafka 核心配置文件

Kafka 的所有核心配置都在其安装目录下的 config/server.properties 文件中。

1. 进入配置目录并打开配置文件

cd /export/server/kafka/config/
vim server.properties

2. 配置数据存储路径 log.dirs
在文件中找到 log.dirs 配置项。Kafka 虽然叫流处理平台,但它会把消息数据持久化到磁盘上。这里配置的就是消息日志数据的存放目录。
将其修改为你规划的路径,例如:

log.dirs=/export/server/kafka/data

3. 配置网络监听 listenersadvertised.listeners

注意:如果你使用的是 KRaft 模式,这一步可能还会涉及到 controller 的配置。

在配置文件中找到 listenersadvertised.listeners

listeners:Kafka Broker 绑定的本地网卡地址和端口。
advertised.listeners:Broker 暴露给外部客户端(Producer/Consumer)连接的地址。

【关键注意】这里配置的 IP 或主机名(如 uhadoop01)必须根据你当前虚拟机的主机名进行更改!在 uhadoop02 上就必须写 uhadoop02!

配置示例(以 uhadoop01 为例):

listeners=PLAINTEXT://uhadoop01:9092,CONTROLLER://uhadoop01:9093
advertised.listeners=PLAINTEXT://uhadoop01:9092,CONTROLLER://uhadoop01:9093

4. 配置集群仲裁投票节点 controller.quorum.voters

注意:此项配置通常出现在较新版本的 KRaft 模式中,如果是传统 ZK 模式,则是配置 zookeeper.connect

这里用于配置集群中的 Controller 节点列表。这一项在三台机器上配置内容是一样的

controller.quorum.voters=1@uhadoop01:9093,2@uhadoop02:9093,3@uhadoop03:9093

【再次提醒】完成 uhadoop01 的配置后,你需要将整个 kafka 文件夹分发到 uhadoop02 和 uhadoop03。并在分发后,分别登录到另外两台机器,修改它们各自 server.properties 文件中的 node.id (通常 1, 2, 3 递增) 以及上面提到的 listeners 和 advertised.listeners 中的主机名!

第四步:创建数据存储目录

我们在 server.properties 中指定了 log.dirs=/export/server/kafka/data,但这个目录在刚解压时是不存在的,我们需要手动创建它。(注意:三台机器都要执行此操作!

mkdir -p /export/server/kafka/data

把修改后的全部传给另外两台虚拟机

cd /export/server/
scp -r kafka uhadoop02:$PWD

第五步:配置系统环境变量

为了能在任何路径下直接运行 Kafka 的各种脚本命令(如 kafka-topics.sh),我们需要将 Kafka 的 bin 目录加入到系统的 PATH 环境变量中。(注意:三台机器都要配置环境变量!

  1. 打开环境变量配置文件:
vim /etc/profile
  1. 在文件末尾添加以下内容:
# KAFKA_HOME
export KAFKA_HOME=/export/server/kafka
export PATH=$PATH:$KAFKA_HOME/bin

  1. 使环境变量配置立即生效:
source /etc/profile

第六步:验证安装

最后,我们需要验证一下环境变量是否配置成功,以及 Kafka 是否能被系统识别。

在终端任意路径下,输入以下命令查看 Kafka 的相关工具版本:

kafka-topics.sh --version

如果终端成功输出了你安装的 Kafka 版本号(例如 4.0.1),那么恭喜你,Kafka 的基础部署和配置已经大功告成!

接下来,你就可以去格式化存储目录并启动集群了。

到此这篇关于Apache Kafka安装详细教程的文章就介绍到这了,更多相关Kafka安装内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java使用easyExcel导出数据及单元格多张图片

    Java使用easyExcel导出数据及单元格多张图片

    除了平时简单的数据导出需求外,我们也经常会遇到一些有固定格式或者模板要求的数据导出,下面这篇文章主要给大家介绍了关于Java使用easyExcel导出数据及单元格多张图片的相关资料,需要的朋友可以参考下
    2023-05-05
  • 如何使用Jenkins构建GIT+Maven项目

    如何使用Jenkins构建GIT+Maven项目

    这篇文章主要介绍了如何使用Jenkins构建GIT+Maven项目,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • 浅谈关于Java中TimeZone锁竞争引发的问题解决

    浅谈关于Java中TimeZone锁竞争引发的问题解决

    本文主要介绍了浅谈关于Java中TimeZone锁竞争引发的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2026-02-02
  • netty中的IO、NIO、AIO使用详解

    netty中的IO、NIO、AIO使用详解

    这篇文章主要介绍了netty中的IO、NIO、AIO使用详解,本文会说明各种IO的特点、分别解决了什么样的问题做一个分析阐述,并结合Java代码例子来辅助理解,像这些的历史演进和详细的底层原理网上很多,所以我们只站在应用层,使用者的角度去分析,需要的朋友可以参考下
    2023-12-12
  • Java实现的具有GUI的校园导航系统的完整代码

    Java实现的具有GUI的校园导航系统的完整代码

    这篇文章主要介绍了Java实现的具有GUI的校园导航系统的完整代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-04-04
  • Java实现猜数字小游戏(有次数限制)

    Java实现猜数字小游戏(有次数限制)

    这篇文章主要为大家详细介绍了Java实现猜数字小游戏,有次数限制,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • Java @Transactional与synchronized使用的问题

    Java @Transactional与synchronized使用的问题

    这篇文章主要介绍了Java @Transactional与synchronized使用的问题,了解内部原理是为了帮助我们做扩展,同时也是验证了一个人的学习能力,如果你想让自己的职业道路更上一层楼,这些底层的东西你是必须要会的
    2023-01-01
  • SpringMVC bean加载控制的实现分析

    SpringMVC bean加载控制的实现分析

    SpringMVC是一种基于Java,实现了Web MVC设计模式,请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将Web层进行职责解耦。基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,SpringMVC也是要简化我们日常Web开发
    2023-02-02
  • Spring AI实现智能聊天模型

    Spring AI实现智能聊天模型

    通过本文的介绍,我们深入了解了Spring AI项目的优势和特性,以及在实际应用中的快速实战示例,Spring AI作为一个高度抽象化的人工智能应用程序开发框架,为开发者提供了便捷的模型支持、灵活的功能模块交换和优化能力
    2024-11-11
  • Java Spring boot 配置JDK和MAVEN开发环境的过程

    Java Spring boot 配置JDK和MAVEN开发环境的过程

    本文详细介绍了如何配置JDK和Maven环境,包括JDK的安装与环境变量设置,Maven的下载、配置环境变量和设置阿里云仓库,最后简述了在IntelliJ IDEA中配置JDK和Maven的步骤,本教程适合Java开发新手进行开发环境的搭建,确保顺利进行Java项目的开发
    2024-11-11

最新评论