CentOS下安装Kafka3

kafka是分布式消息队列,本文讲述其在centos(centos 7.5)下的安装。安装过程可以参考其官方文档https://kafka.apache.org/36/documentation.html

首先在官网 https://kafka.apache.org/downloads 下载Kafka二进制文件(官网的压缩包里面已经包含了Linux和windows的Kafka可执行文件了),选择目前比较新的3.6.1版本下载。

一、安装Java环境

Kafka 是用 Java 开发的,因此需要安装java环境。 从Kafka的官方文档 Apache Kafka 可以看到,Kafka3.6.1需要的java环境为Java8 或以上(不同版本的Kafka需要的Java环境版本也不一样)。

从Java官网Java Downloads | Oracle 下载 JDK(SUN公司提供的一套Java开发环境,简称JDK(JavaDevelopmentKit),它是整个Java的核心,其中包括Java编译器、Java运行工具、Java文档生成工具、Java打包工具)

将java jdk拷贝到CentOS中,执行命令:

bash 复制代码
tar -zxvf jdk-21_linux-x64_bin.tar.gz
cd jdk-21.0.2
mkdir /usr/lib/jdk
cd ..
mv jdk-21.0.2/ /usr/lib/jdk

配置java环境变量,将环境变量配置在etc/profile或/etc/bashrc中

bash 复制代码
vi /etc/bashrc

在末尾添加以下几行文字:

bash 复制代码
#set java env
export JAVA_HOME=/usr/lib/jdk/jdk1.8.0_291
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH

让环境变量生效

bash 复制代码
source /etc/bashrc

执行命令:

bash 复制代码
java -version

如果出现现版本号说明Java环境安装成功:

二、安装部署Kafka

然后我们来安装Kafka,将之前下载下来的Kafka二进制文件kafka_2.12-3.6.1.tgz拷贝到CentOS中,执行命令:

bash 复制代码
tar -zxvf kafka_2.12-3.6.1.tgz
mv kafka_2.12-3.6.1 kafka_3.6.1
cd kafka_3.6.1

可以看到目录结构如下:

.kafka3版本之后自带zookeeper。配置zookeeper的配置文件:

bash 复制代码
vi config/zookeeper.properties

设置快照存贮路径

配置Kafka的配置文件:

bash 复制代码
vi config/server.properties

设置日志文件的存贮路径:

启动zookeeper:

bash 复制代码
bin/zookeeper-server-start.sh -daemon config/zookeeper.properties

启动kafka:

bash 复制代码
bin/kafka-server-start.sh -daemon config/server.properties

通过netstat命令查看到9092端口被一个java进程占用,说明启动成功了

三、Kafka的基本操作

创建主题:

bash 复制代码
bin/kafka-topics.sh --create --topic quickstart-events --bootstrap-server localhost:9092

Kafka 中的消息以主题为单位进行归类,生产者负责将消息发送到特定的主题(发送到 Kafka 集群中的每一条消息都要指定一个主题),而消费者负责订阅主题并进行消费。

查看主题属性:

bash 复制代码
bin/kafka-topics.sh --describe --topic quickstart-events --bootstrap-server localhost:9092

新建两个终端,分别执行命令,通过生产者发送消息:

bash 复制代码
bin/kafka-console-producer.sh --topic quickstart-events --bootstrap-server localhost:9092

通过消费者消费消息:

bash 复制代码
bin/kafka-console-consumer.sh --topic quickstart-events --from-beginning --bootstrap-server localhost:9092

然后就可以看到生产者和消费者进行通讯了:

四、遇到问题

Kafka生产者、消费者通讯时可能会报错:Error connecting to node xxxxx:9092,可以参考:《kafka发送数据报错: Error connecting to node xxxxx:9092 (id: 1 rack: null)java.net.UnknownHostExceptio

相关推荐
小白羊丨19 小时前
Kafka任务重试、退避与失败恢复怎么做?
分布式·kafka
爱三盖浇饭2 天前
挑战从零开始学习Kafka2: Kafka 常见问题解决方案
学习·kafka
山鬼龙王3 天前
吃透 Kafka:一篇讲清楚核心原理和高频考点
kafka
pnoker5 天前
IoT DC3 消息总线:六适配器可插拔设计
物联网·架构·kafka·消息队列·rabbitmq
cxhello5 天前
消费者活着、心跳正常、日志干净,但它七天没拉过一条消息
python·kafka
2601_962064706 天前
SpringBoot 整合 Avro 与 Kafka
spring boot·kafka·linq
HashFlag6 天前
本地极简安装kafka
kafka
ZCBUS实时计算7 天前
信创混合存储架构落地实战|基于 ZCBUS 实时计算构建证券高可用实时风控数仓
大数据·架构·flink·kafka·dba
Sayai7 天前
Kafka 去 ZooKeeper 实战评估:KRaft 模式架构解析与生产落地决策指南
zookeeper·架构·kafka
StarRocks_labs7 天前
StarRocks x Fluss x Paimon 湖流一体方案:构建秒级响应、湖流一体的实时数据引擎
starrocks·kafka·lambda·查询·paimon·fluss·湖流一体