【Kafka】Windows下安装Kafka(图文记录详细步骤)

embedded/2025/2/26 17:32:54/

【Kafka】Windows下安装Kafka

  • Kafka简介
  • 一、Kafka安装前提
    • 安装Kafka之前,需要安装JDK、Zookeeper、Scala。
    • 1.1、JDK安装(version:1.8)
      • 1.1.1、JDK官网下载
      • 1.1.2、JDK网盘下载
      • 1.1.3、JDK安装
    • 1.2、Zookeeper安装
      • 1.2.1、Zookeeper官网下载
      • 1.2.2、Zookeeper网盘下载
      • 1.2.3、Zookeeper安装
    • 1.3、Scala安装(version:2.12)
      • 1.3.1、Scala官网下载
      • 1.3.2、Scala网盘下载
      • 1.3.3、Scala安装
  • 二、Kafka安装(version:2.12-3.5.1)
    • 2.1、Kafka官网下载
    • 2.2、Kafka网盘下载
    • 2.3、Kafka安装
      • 2.3.1、解压Kafka安装包到安装目录
      • 2.3.2、Kafka安装目录下新建目录logs
      • 2.3.3、修改Kafka配置文件 server.properties
        • 2.3.3.1、修改 log.dirs 参数
        • 2.3.3.2、修改 listeners 参数
    • 2.4、Kafka启动
      • 2.4.1、先启动Zookeeper服务
      • 2.4.2、再启动Kafka服务
    • 2.4、Kafka相关操作(Kafka新版本命令)
      • 2.4.1、创建topics
      • 2.4.2、查看topics
      • 2.4.3、打开一个producer(生产者)
      • 2.4.4、打开一个consumer(消费者)
      • 2.4.5、测试发送和接受消息
        • 2.4.5.1、producer(生产者)发送消息
        • 2.4.5.2、consumer(消费者)接收消息
  • 三、常见问题记录汇总
    • 3.1、乱码解决
    • 3.2、收不到消息,常见情况
    • 3.3、执行.\bin\windows\kafka-server-start.bat .\config\server.properties 报错

Kafka简介

(一)、Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。
(二)、Kafka 本质上是⼀个消息队列。与zeromq不同的是,Kafka是一个独立的框架而不是一个库。
(三)、Kafka 是一种高吞吐量 的分布式发布订阅消息系统,有如下特性:

  • 通过O(1)的磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。
  • 高吞吐量 :即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。
  • 支持通过Kafka服务器和消费机集群来分区消息。
  • 支持Hadoop并行数据加载。

一、Kafka安装前提

安装Kafka之前,需要安装JDK、Zookeeper、Scala。

  • Kafka依赖Zookeeper,在安装Kafka之前,需要安装、运行Zookeeper。
  • 而且Kafka是由Scala和Java编写,所以也需要安装jdk、scala。

本次安装版本选择:
JDK:1.8
Zookeeper:3.6.4
Scala:2.12
Kafka:3.5.1

1.1、JDK安装(version:1.8)

1.1.1、JDK官网下载

官网下载地址(需要oracle账号)
https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html

1.1.2、JDK网盘下载

或者网盘下载:jdk-8u381-windows-x64.exe

1.1.3、JDK安装

可以参考博文:【java】windows下安装jdk1.8详细图文操作说明(包会)

1.2、Zookeeper安装

1.2.1、Zookeeper官网下载

官网下载地址:https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.4/apache-zookeeper-3.6.4-bin.tar.gz

1.2.2、Zookeeper网盘下载

或者网盘下载:apache-zookeeper-3.6.4-bin.tar.gz

1.2.3、Zookeeper安装

安装方法就不赘述了。
参考博文:Windows下安装Zookeeper(图文记录详细步骤,手把手包安装成功)

1.3、Scala安装(version:2.12)

1.3.1、Scala官网下载

官网下载地址:
https://downloads.lightbend.com/scala/2.11.12/scala-2.11.12.msi

1.3.2、Scala网盘下载

或者网盘下载:scala-2.11.12.msi

1.3.3、Scala安装

安装方法就不赘述了。
可参考博文:Windows下安装Scala(以Scala 2.11.12为例)

二、Kafka安装(version:2.12-3.5.1)

version:2.12-3.5.1,表示Scala版本是2.12,Kafka版本是基于此的3.5.1版本。

2.1、Kafka官网下载

官网下载地址:https://downloads.apache.org/kafka/3.5.1/kafka_2.12-3.5.1.tgz

2.2、Kafka网盘下载

网盘下载地址:kafka_2.12-3.5.1.tgz

2.3、Kafka安装

2.3.1、解压Kafka安装包到安装目录

这里解压到:D:\bigdata\kafka\2.12-3.5.1

2.3.2、Kafka安装目录下新建目录logs

在这里插入图片描述

2.3.3、修改Kafka配置文件 server.properties

文件路径:D:\bigdata\kafka\2.12-3.5.1\config\server.properties

2.3.3.1、修改 log.dirs 参数

修改 log.dirs 参数值,修改成上一步新建的logs文件夹。注意文件夹路径中是双左斜杠

log.dirs=D:\\bigdata\\kafka\\2.12-3.5.1\\logs

在这里插入图片描述

2.3.3.2、修改 listeners 参数

修改 listeners 参数值。

listeners=PLAINTEXT://localhost:9092

在这里插入图片描述

2.4、Kafka启动

由于Kafka依赖于Zookeeper,所以要先启动Zookeeper,再启动Kafka。

2.4.1、先启动Zookeeper服务

管理员权限打开命令窗口,输入命令zkServer,启动Zookeeper服务:

zkServer

在这里插入图片描述
显示如下信息,则表示Zookeeper服务正常运行:
在这里插入图片描述

2.4.2、再启动Kafka服务

管理员权限打开命令窗口,进入到Kafka安装目录(D:\bigdata\kafka\2.12-3.5.1)。
输入如下命令启动Kafka服务:

.\bin\windows\kafka-server-start.bat .\config\server.properties

在这里插入图片描述
显示如下信息,则表示Kafka服务正常运行:
在这里插入图片描述

2.4、Kafka相关操作(Kafka新版本命令)

Kafka2.2之后版本中使用–zookeeper hadoop01:2181会出现报错情况,2.2之后的版本使用了–bootstrap-server hadoop01:9092来替换–zookeeper hadoop01:2181

2.4.1、创建topics

以管理员权限新开一个命令提示窗口,进入D:\bigdata\kafka\2.12-3.5.1\bin\windows目录,执行以下命令,创建topics:

kafka-topics.bat --create --bootstrap-server localhost:9092 --replication-factor 1 --partitions 1 --topic test

在这里插入图片描述

2.4.2、查看topics

查看topics列表:

kafka-topics.bat --bootstrap-server localhost:9092 --list

在这里插入图片描述

2.4.3、打开一个producer(生产者)

以管理员权限新开一个命令提示窗口,进入D:\bigdata\kafka\2.12-3.5.1\bin\windows目录,
在这里插入图片描述
执行以下命令,打开一个producer(生产者):

kafka-console-producer.bat --broker-list localhost:9092 --topic test

在这里插入图片描述

2.4.4、打开一个consumer(消费者)

以管理员权限新开一个命令提示窗口,进入D:\bigdata\kafka\2.12-3.5.1\bin\windows目录,执行以下命令,打开一个consumer(消费者):

kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning

在这里插入图片描述

2.4.5、测试发送和接受消息

以上打开的窗口不要关闭,然后就可以在producer(生产者)控制台窗口输入消息并回车。在消息输入过后,很快consumer(消费者)窗口就会显示出producer(生产者)发送的消息。

2.4.5.1、producer(生产者)发送消息

在producer(生产者)控制台窗口输入消息:
在这里插入图片描述

2.4.5.2、consumer(消费者)接收消息

在consumer(消费者)控制台窗口查看消息:
在这里插入图片描述
我们发现,producer(生产者)发送的消息被consumer(消费者)接受到了。
这里乱码是字符集的问题。

三、常见问题记录汇总

3.1、乱码解决

乱码解决可以参看下面两篇文章:

  1. 【Kafka】Kafka消息乱码解决
  2. 【Kafka】Kafka永久设置编码格式

3.2、收不到消息,常见情况

  1. 在consumer没有打开之前,就在producer里面发送了消息
  2. producer和consumer使用的topic不一致

kafkaserverstartbat_configserverproperties__137">3.3、执行.\bin\windows\kafka-server-start.bat .\config\server.properties 报错

如果执行.\bin\windows\kafka-server-start.bat .\config\server.properties 报错什么不是内部或外部命令的情况是windows11系统原因,在设置里面搜索“可选功能”。在可选功能里面搜索WMIC 勾上之后点击添加功能下载后就可以了。


http://www.ppmy.cn/embedded/167316.html

相关文章

计算机考研之数据结构:斐波那契数列专题(1)

不论是在算法还是在编程语言的教材中,都可能会以斐波那契数列为例,或说明其算法上的特点——主要是递归,或说明如何运用某种编程语言编写相应函数。 本文是一篇关于“斐波那契数列”的专题文章,目的是让学习《数据结构》这门课程…

哈希表入门到精通:从原理到 Python 实现全解析

系列文章目录 01-从零开始掌握Python数据结构:提升代码效率的必备技能! 02-算法复杂度全解析:时间与空间复杂度优化秘籍 03-线性数据结构解密:数组的定义、操作与实际应用 04-深入浅出链表:Python实现与应用全面解析 …

排序算法适合的场景

排序算法的选择取决于数据规模、特性、稳定性需求、内存限制等因素。以下为常见排序算法及其适用场景: 1. 简单排序算法(O(n)) 冒泡排序 场景:数据量极小(如 n ≤ 100)或几乎有序;教学演示。缺点…

【面试手撕】多线程/并发编程

文章目录 前言三个线程,交替打印A、B、C两个线程1~100交替输出奇数和偶数10个线程,每个线程1w,最终变量到达10w模拟死锁让三个线程怎么串行执行1.使用join方法2.使用CountDownLatch 前言 本文总结面试中常考的手撕多线程问题。 三个线程&am…

排序算法模板——归并,快排【C++】

前言 二者都是分治思想的体现,区别是归并是以整个数组的mid(下标的中间值)来分,分别将左右两个区间排好序,再合并;而快排是以数组中的一个数来划分,将小于等于这个数的放在该数左边&#xff0c…

重构清洁想象,石头科技首创五轴仿生机械手打破传统清洁边界

2月25日,主题为“重构清洁想象”的石头科技2025发布会在上海天文馆正式召开。石头科技清洁产品BU总裁钱启杰在会上宣布,石头科技正式成为上海天文馆授权合作伙伴,希望借助航天科技到家庭科技的跨越,进一步简化家庭清洁工作&#x…

电商评论数据实现每秒百级评论数据的实时抓取

电商评论数据蕴含用户情感与产品改进方向。本文基于Go语言NSQ消息队列,实现每秒万级评论数据的实时抓取与情感分析。 1. ​系统架构与核心代码​ go package mainimport ("github.com/nsqio/go-nsq""encoding/json" )// 评论数据模型 type Com…

minio作为K8S后端存储

docker部署minio mkdir -p /minio/datadocker run -d \-p 9000:9000 \-p 9001:9001 \--name minio \-v /minio/data:/data \-e "MINIO_ROOT_USERjbk" \-e "MINIO_ROOT_PASSWORDjbjbjb123" \quay.io/minio/minio server /data --console-address ":90…