Linux 单机部署 Kafka 详细教程(CentOS 7+)

系列博客专栏:

  • SpringBoot与微服务实践系列博客
  • Java互联网高级培训教程

一、环境准备

1. 操作系统要求

Kafka 可以在多种 Linux 发行版上运行,本文以 CentOS 7 为例,其他发行版步骤类似,只需调整包管理命令。

2. Java 环境要求

Kafka 基于 Java 开发,需安装 JDK 8 或以上版本

java -version

若已安装,将输出示例:

openjdk version "1.8.0_362"
OpenJDK Runtime Environment (build 1.8.0_362-b09)
OpenJDK 64-Bit Server VM (build 25.362-b09, mixed mode)

二、安装 JDK

1. 下载 JDK

  • Oracle 官网:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
  • 或 OpenJDK 官网下载 Linux 版本
  • 示例(OpenJDK 8):
wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz

2. 解压安装包

mkdir -p /usr/local/java
tar -zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz -C /usr/local/java

3. 配置环境变量

/etc/profile 末尾追加:

export JAVA_HOME=/usr/local/java/jdk1.8.0_41
export PATH=$PATH:$JAVA_HOME/bin

使配置生效:

source /etc/profile

4. 验证安装

java -version

三、安装并配置 ZooKeeper

Kafka 依赖 ZooKeeper 管理集群,建议独立安装。

1. 下载 ZooKeeper

  • 官网:https://zookeeper.apache.org/releases.html
  • 示例版本:3.8.4
wget https://downloads.apache.org/zookeeper/zookeeper-3.8.4/apache-zookeeper-3.8.4-bin.tar.gz

2. 解压安装包

mkdir -p /usr/local/zookeeper
tar -zxvf apache-zookeeper-3.8.4-bin.tar.gz -C /usr/local/zookeeper

3. 配置 ZooKeeper

(1) 创建数据与日志目录
mkdir -p /usr/local/zookeeper/data
mkdir -p /usr/local/zookeeper/logs
(2) 修改配置文件
cd /usr/local/zookeeper/apache-zookeeper-3.8.4-bin/conf
cp zoo_sample.cfg zoo.cfg

编辑 zoo.cfg

dataDir=/usr/local/zookeeper/data
dataLogDir=/usr/local/zookeeper/logs
clientPort=2181
(3) 集群配置(可选)

单机可跳过。集群模式需添加:

server.1=192.168.1.101:2888:3888
server.2=192.168.1.102:2888:3888
server.3=192.168.1.103:2888:3888

并在每个节点的 dataDir 中创建 myid

echo 1 > /usr/local/zookeeper/data/myid
(4) 配置环境变量
echo 'export ZOOKEEPER_HOME=/usr/local/zookeeper/apache-zookeeper-3.8.4-bin' >> /etc/profile
echo 'export PATH=$PATH:$ZOOKEEPER_HOME/bin' >> /etc/profile
source /etc/profile

4. 启动与验证

zkServer.sh start
zkServer.sh status   # 单机显示 Mode: standalone
zkServer.sh stop

四、安装 Kafka

1. 下载 Kafka

  • 官网:https://kafka.apache.org/downloads
  • 示例版本:3.6.2(Scala 2.12)
wget https://archive.apache.org/dist/kafka/3.6.2/kafka_2.12-3.6.2.tgz

2. 解压安装包

mkdir -p /usr/local/kafka
tar -zxvf kafka_2.12-3.6.2.tgz -C /usr/local/kafka

3. 配置 Kafka

编辑 /usr/local/kafka/kafka_2.12-3.6.2/config/server.properties

broker.id=0
listeners=PLAINTEXT://your_ip:9092
log.dirs=/usr/local/kafka/kafka-logs
zookeeper.connect=localhost:2181

创建日志目录:

mkdir -p /usr/local/kafka/kafka-logs

五、启动 Kafka 服务

1. 启动顺序

确保 ZooKeeper 已启动:

zkServer.sh start

启动 Kafka:

./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-server-start.sh -daemon /usr/local/kafka/kafka_2.12-3.6.2/config/server.properties

2. 验证进程

jps

输出应包含:

QuorumPeerMain
Kafka

六、停止服务

# 停止 Kafka
./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-server-stop.sh# 停止 ZooKeeper
zkServer.sh stop

七、测试 Kafka

1. 创建主题

./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-topics.sh \--create \--topic test-topic \--bootstrap-server localhost:9092 \--replication-factor 1 \--partitions 1

2. 查看主题列表

./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-topics.sh --list --bootstrap-server localhost:9092

3. 发送消息

./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-console-producer.sh \--bootstrap-server localhost:9092 \--topic test-topic

输入内容后按 Enter 发送。

4. 消费消息(新终端)

./usr/local/kafka/kafka_2.12-3.6.2/bin/kafka-console-consumer.sh \--bootstrap-server localhost:9092 \--topic test-topic \--from-beginning

八、总结

通过以上步骤,已在 Linux 系统成功独立安装配置了 ZooKeeperKafka
后续可根据需求扩展为集群、调整性能参数或集成其他组件。

祝你顺利搭建 Kafka 消息系统!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/bicheng/92628.shtml
繁体地址,请注明出处:http://hk.pswp.cn/bicheng/92628.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解析工业机器视觉中的飞拍技术

在工业机器视觉的领域,"飞拍"这个术语时常被提起,尤其是在高速检测和动态捕捉的场景中。但你真的了解飞拍是什么吗?它到底如何工作,能为工业应用带来哪些突破性改进呢?让我们一起来解密。1. 飞拍的核心概念 …

[特殊字符]企业游学 | 探秘字节,解锁AI科技新密码

宝子们,想知道全球科技巨头字节跳动的成功秘籍吗?一场企业游学,带你深入字节跳动创新基地,探索AI新科技,揭开规模化增长背后的神秘面纱✨字节跳动:全球经济价值的创造者字节跳动可太牛啦!TikTok…

主流大数据框架深度解析:从介绍到选型实战

主流大数据框架深度解析:从介绍到选型实战 在数据驱动的时代,选择合适的大数据处理框架是构建高效、可靠数据平台的关键。 深入剖析 Hadoop MapReduce、Apache Spark、Apache Flink 和 Kafka Streams 四大主流框架,从框架介绍、具体使用场景、优缺点、选择建议到实际案例,…

座舱HMI软件开发架构:核心功能与案例解析

随着智能座舱的持续演进,HMI(Human Machine Interface,人与机器交互界面)系统已从单一的显示控制器演变为集多屏联动、多模态交互、车载服务集成于一体的智能系统,需要一个多系统、多设备协同运行的复杂架构来支撑。本…

把“思考”塞进 1 KB:我用纯 C 语言给单片机手搓了一个微型 Transformer 推理引擎

标签:TinyML、Transformer、单片机、Cortex-M、量化、KV-Cache、裸机编程 ---- 1. 为什么要在 64 KB SRAM 的 MCU 上跑 Transformer? 2024 年以前,TinyML ≈ CNN CMSIS-NN,做语音唤醒或简单分类就到头了。 但产品同事突然拍脑袋&…

什么是CLI?

什么是CLI?CLI(Command Line Interface)是命令行界面的缩写,是一种通过文本命令与计算机程序交互的方式。通俗比喻CLI就像是一个"智能助手":你输入命令,它执行任务就像和机器人对话一样&#xff…

mysql基本sql语句大全

十分想念顺店杂可。。。以下是 MySQL 中常用的基本 SQL 语句大全,按功能分类整理,包含语法和示例,方便参考使用:一、数据库操作(DDL)用于创建、删除、切换数据库。创建数据库-- 基本语法 CREATE DATABASE […

构建响应式在线客服聊天系统的前端实践 Vue3+ElementUI + CSS3

构建响应式客服聊天系统的前端实践在当今数字化时代,客服系统已成为企业与客户沟通的重要桥梁。一个优秀的在线客服系统不仅需要功能完善,还需要在各种设备上都能提供良好的用户体验。本文将介绍如何构建一个响应式的客服聊天界面,确保在桌面…

C语言memcpy函数详解:高效内存复制的实用工具

目录1. memcpy函数是什么?函数原型2. memcpy函数的用法运行结果:代码解析3. memcpy函数的注意事项3.1 内存区域不重叠3.2 缓冲区大小管理3.3 指针有效性3.4 性能优势3.5 平台兼容性4. 实际应用场景4.1 数组复制4.2 动态内存复制4.3 结构体复制4.4 缓冲区…

多级缓存架构:新品咖啡上线引发的数据库压力风暴与高并发实战化解方案

一、背景:新品咖啡风暴与数据库之痛想象一下:某知名咖啡品牌推出限量版“星空冷萃”,通过社交媒体引爆流量。上午10点开售瞬间,APP与网站涌入数十万用户,商品详情页、库存查询请求如海啸般涌向后台。传统架构下&#x…

888. 公平的糖果交换

目录 题目链接: 题目: 解题思路: 代码: 总结: 题目链接: 888. 公平的糖果交换 - 力扣(LeetCode) 题目: 解题思路: 前一个数组和sumA,后一个数组sumB,然…

Day01 项目概述,环境搭建

软件开发整体介绍 软件开发流程 需求分析:需求规格说明书、产品原型 设计:UI 设计、数据库设计,接口设计 编码:项目代码、单元测试 测试:测试用例、测试报告 上线运维:软件环境安装、配置 角色分工 项…

Perl Socket 编程

Perl Socket 编程 引言 Perl 语言作为一种强大的脚本语言,在系统管理和网络编程领域有着广泛的应用。Socket 编程是网络编程的核心,它允许程序在网络中进行数据传输。本文将详细介绍 Perl 语言中的 Socket 编程,包括 Socket 的概念、创建、通信以及一些高级应用。 Socket…

3 种简单方法备份 iPhone 上的短信 [2025]

短信通常承载着我们工作和私人生活中有价值的信息和美好的回忆,以及我们不想丢失的特别对话。这就是为什么备份 iPhone 短信如此重要的原因。如果出现问题,比如意外删除或系统问题,备份意味着你可以轻松地恢复短信。在本指南中,我…

Linux库路径三剑客:/usr/lib、/usr/local/lib、~/.local/lib 详解与避坑指南

在Linux的世界里,/usr/lib、/usr/local/lib和~/.local/lib这三个路径看似只是简单的文件夹,实则是软件包管理和开发环境的基石。理解它们的区别,不仅能让你的pip install、make install等命令得心应手,更能避免ImportError、comma…

python 之 autogen-core《二》代理运行环境、应用程序堆栈、代理生命周期

支持两种类型的运行时环境:独立式和分布式 独立代理运行时 独立运行时适用于单进程应用程序,其中所有代理均使用同一种编程语言实现并在同一进程中运行。在 Python API 中,独立运行时的一个示例是SingleThreadedAgentRuntime。 在这里&…

欧姆龙PLC CP1H在视觉检测产线中的应用:以太网模块实现上位机实时采样与触摸屏报警联动

一、行业痛点与解决方案概述以某汽车零部件制造企业的生产线检测系统为例,该企业原本使用欧姆龙CP1H PLC作为主控制器。由于CP1H PLC本身不具备以太网接口,只能通过串口(如RS232或RS485)进行通讯。这种通讯方式存在传输距离短、传…

快速找到两个 Word 文档之间文字的区别

要快速找到两个 Word 文档之间文字的区别,可以使用 Microsoft Word 自带的“比较(Compare)”功能,步骤如下: ✅ 方法一:使用 Microsoft Word 的“比较”功能 打开 Microsoft Word。 点击顶部菜单栏中的 “…

ZK首次连接失败,第二次连接成功的问题解决方案

问题 项目中配置zk后,启动时zk第一次链接总是失败,过一会后又会链接成功。异常如下: "C:\Program Files\Java\jdk1.8.0_291\bin\java.exe" -agentlib:jdwptransportdt_socket,address127.0.0.1:58217,suspendy,servern -XX:TieredS…

OpenCV cv2.flip() 函数详解与示例

本文介绍了 OpenCV 中 cv2.flip() 函数的用法,该函数可实现图像的水平、垂直及双向翻转。通过设置 flipCode 参数为 0、1 或 -1,用户可分别获得上下颠倒、左右镜像或 180 旋转的效果。文中提供了详细的参数说明、示例代码以及三种翻转模式的效果对比&…