Linux安装Kafka单机版
迪丽瓦拉
2025-05-29 08:48:59
0

文章目录

  • 前言
  • 一、下载
  • 二、安装前的准备工作
  • 三、修改配置文件
  • 四、修改环境变量
  • 五、验证配置是否成功
  • 六、启动服务
  • 七、简单使用
    • 7.1 创建主题 topic
    • 7.2 查看当前的主题
    • 7.3 关闭服务
  • 八、其他事项

前言

欲练此功,必先安装 Zookeeper 。
如何安装且看:https://blog.csdn.net/FBB360JAVA/article/details/129567653

一、下载

使用以下下载链接,进行下载:
https://mirrors.cnnic.cn/apache/kafka/

本次安装采用最新版本:
在这里插入图片描述
使用如下命令进行下载:

wget https://mirrors.cnnic.cn/apache/kafka/3.4.0/kafka_2.12-3.4.0.tgz

等待下载完毕后,进行解压:

tar -xzvf kafka_2.12-3.4.0.tgz

效果如下:

[root@iZ2zefzjmmq2tvk3fvkxhaZ kafka]# ll
total 103952
drwxr-xr-x 7 root root      4096 Feb  1 02:05 kafka_2.12-3.4.0
-rw-r--r-- 1 root root 106441367 Feb  7 00:47 kafka_2.12-3.4.0.tgz
[root@iZ2zefzjmmq2tvk3fvkxhaZ kafka]# pwd
/usr/software/kafka
[root@iZ2zefzjmmq2tvk3fvkxhaZ kafka]# 

二、安装前的准备工作

在解压后的目录中创建日志目录 kafka-logs

[root@iZ2zefzjmmq2tvk3fvkxhaZ kafka_2.12-3.4.0]# pwd
/usr/software/kafka/kafka_2.12-3.4.0
[root@iZ2zefzjmmq2tvk3fvkxhaZ kafka_2.12-3.4.0]# mkdir kafka-logs
[root@iZ2zefzjmmq2tvk3fvkxhaZ kafka_2.12-3.4.0]# ll
total 68
drwxr-xr-x 3 root root  4096 Feb  1 02:05 bin
drwxr-xr-x 3 root root  4096 Feb  1 02:05 config
drwxr-xr-x 2 root root  4096 Mar 15 21:31 kafka-logs
drwxr-xr-x 2 root root  4096 Mar 15 21:26 libs
-rw-r--r-- 1 root root 14869 Feb  1 02:02 LICENSE
drwxr-xr-x 2 root root  4096 Feb  1 02:05 licenses
-rw-r--r-- 1 root root 28184 Feb  1 02:02 NOTICE
drwxr-xr-x 2 root root  4096 Feb  1 02:05 site-docs

三、修改配置文件

修改安装目录中 config 目录下的 server.properties 文件
主要修改属性:broker.idlog.dirszookeeper.connect

[root@iZ2zefzjmmq2tvk3fvkxhaZ config]# pwd
/usr/software/kafka/kafka_2.12-3.4.0/config
[root@iZ2zefzjmmq2tvk3fvkxhaZ config]# vim server.properties 

具体内容如下:

broker.id=0
log.dirs=/usr/software/kafka/kafka_2.12-3.4.0/kafka-logs
zookeeper.connect=localhost:2181
listeners=PLAINTEXT://localhost:9092
advertised.listeners=PLAINTEXT://你的公网IP地址:9092

注意这里有坑,listeners=PLAINTEXT://localhost:9092 ,无所谓配置不配置。
我在部署Kafka到阿里云之后,本地连接不上。查到资料后,发现 advertised.listeners 必须配置成自己的阿里云公网ID地址。
在这里插入图片描述

四、修改环境变量

修改 /etc/profile 文件,在尾部追加以下内容:

export KAFKA_HOME=/usr/software/kafka/kafka_2.12-3.4.0
export PATH=$KAFKA_HOME/bin:$PATH

随后使配置生效:

source /etc/profile

五、验证配置是否成功

验证配置是否成功:
输出配置的KAFKA_HOME变量,并且输入 kafka-,再使用 tab,看看会不会自动补全。

[root@iZ2zefzjmmq2tvk3fvkxhaZ config]# echo $KAFKA_HOME
/usr/software/kafka/kafka_2.12-3.4.0
[root@iZ2zefzjmmq2tvk3fvkxhaZ config]# kafka-
kafka-acls.sh                       kafka-delegation-tokens.sh          kafka-metadata-shell.sh             kafka-storage.sh
kafka-broker-api-versions.sh        kafka-delete-records.sh             kafka-mirror-maker.sh               kafka-streams-application-reset.sh
kafka-cluster.sh                    kafka-dump-log.sh                   kafka-producer-perf-test.sh         kafka-topics.sh
kafka-configs.sh                    kafka-features.sh                   kafka-reassign-partitions.sh        kafka-transactions.sh
kafka-console-consumer.sh           kafka-get-offsets.sh                kafka-replica-verification.sh       kafka-verifiable-consumer.sh
kafka-console-producer.sh           kafka-leader-election.sh            kafka-run-class.sh                  kafka-verifiable-producer.sh
kafka-consumer-groups.sh            kafka-log-dirs.sh                   kafka-server-start.sh               
kafka-consumer-perf-test.sh         kafka-metadata-quorum.sh            kafka-server-stop.sh     

以上安装就成功了。

六、启动服务

先确保你的 zookeeper 正常启动了。
随后在kafka 的根目录中启动kafka:

./bin/kafka-server-start.sh ./config/server.properties &

随后使用 jps 命令确认是否已经启动:

[root@iZ2zefzjmmq2tvk3fvkxhaZ logs]# jps
232897 nacos-server.jar
2665485 Logstash
268274 Jps
174292 QuorumPeerMain
4183577 start-1.0.0-SNAPSHOT.jar
2453069 rocketmq-dashboard-1.0.1-SNAPSHOT.jar
2518282 NamesrvStartup
2600634 Elasticsearch
267723 Kafka

可以看到已经启动了Kafka。

七、简单使用

7.1 创建主题 topic

以下命令创建名为 testTopic 的 topic。

./bin/kafka-topics.sh --create --topic testTopic --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1

7.2 查看当前的主题

./bin/kafka-topics.sh --list --bootstrap-server localhost:9092

不出意外的,上一步创建的 topic 被列了出来,但是上述命令是查看所有的 topic的。

[root@iZ2zefzjmmq2tvk3fvkxhaZ kafka_2.12-3.4.0]# ./bin/kafka-topics.sh --list --bootstrap-server localhost:9092
testTopic

查看指定topic的详细信息:

[root@iZ2zefzjmmq2tvk3fvkxhaZ kafka_2.12-3.4.0]# ./bin/kafka-topics.sh --describe --bootstrap-server localhost:9092 --topic testTopic 
Topic: testTopic	TopicId: 6MXViI1ATRyLl5wl1o8YcQ	PartitionCount: 1	ReplicationFactor: 1	Configs: Topic: testTopic	Partition: 0	Leader: 0	Replicas: 0	Isr: 0

7.3 关闭服务

./bin/kafka-server-stop.sh

八、其他事项

本文原意只是为了使用 SpringBoot 来操作 Kafka 来做的准备工作。
我们仍需知道的是 ,Kafka 对外需要暴露 9092 端口。方便Java 程序调用。
后序我们将使用 Spring-kafka 以及 Spring-cloud-stream-kafka 的 starter 来操作kafka。

相关内容