Windows系统下kafka环境搭建与"java.lang.OutOfMemoryError: Map failed"的异常处理

一、依赖环境准备

  1、检查JDK是否存在且和JVM版本一致,我这里系统是64位,JVM也是64位

       

 

 

   2、如果出现以下报错则是JVM不一致

 二、安装kafka

  1、下载最新版本kafka

        kafka官方下载路径: https://kafka.apache.org/downloads.html

        我们下载官方推荐的最新版本kafka 3.2.1, Scala 2.13

   2、解压到本地,如下图所示

     

 

 

   3、分别修改zookpeer和kafka的配置文件 config\zookeeper.properties、config\server.properties

       

 

 

   4、根据自己习惯修改zookeeper的data路径到指定位置(不修改也可以,不会影响使用),单机版其他无需修改

 

 

   5、修改kafka配置文件,advertised.listeners注释打开,并在PLAINTEXT://后加上域名或IP,我这里本机就用localhost了

 

 

 三、启动zookeeper和kafka

  1、启动zoopeeper单机

        打开DOS窗口切换路径到 \kafka_2.13-3.2.1\bin\windows下,执行以下命令

zookeeper-server-start.bat  ..\..\config\zookeeper.properties

       如下图执行此命令,如无报错,则启动成功

  2、启动kafka单机

  打开DOS窗口切换路径到 \kafka_2.13-3.2.1\bin\windows下,执行以下命令

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

 3、创建topic

         打开DOS窗口切换路径到 \kafka_2.13-3.2.1\bin\windows下,执行以下命令

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

# 可以通过配置使kafka自动创建topic,但生产环境不会这样使用,这里就不作讲解
# kafka-topics.bat  操作topic的脚本
# --create 代表本次操作动作是创建 kafka_topic1 定义的topic名称
# --bootstrap-server 代表kafka的broker地址,多个地址用逗号隔开,这里是单机且本机,使用localhost:9092
# --partitions 1 代表为名称是kafka_topic1的topic创建一个分区
# --replication-factor 1 代表为已创建的分区创建一个备份分区

  查看topic命令

  打开DOS窗口切换路径到 \kafka_2.13-3.2.1\bin\windows下,执行以下命令

#查看指定topic的命令
kafka-topics.bat --describe --bootstrap-server localhost:9092 --topic kafka_topic1

#查看topic清单
kafka-topics.bat --list --bootstrap-server localhost:9092

  

 四、用命令发布消息和消费消息

 1、用命令发布消息

  打开DOS窗口切换路径到 \kafka_2.13-3.2.1\bin\windows下,执行以下命令

# 创建producer
kafka-console-producer.bat --bootstrap-server localhost:9092 --topic kafka_topic1

  运行producer,并发布hello消息

  2、用命令消费消息

  打开DOS窗口切换路径到 \kafka_2.13-3.2.1\bin\windows下,执行以下命令

# 创建consumer
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic kafka_topic1 --from-beginning

# --from-beginning 代表从头开始消费

  这里消费到了前面发布的“hello”的消息

 

 

      到这里就结束了,可以尽情的去发布消息和消费消息了

注意:

 kafka启动或者消费消息是报 "java.lang.OutOfMemoryError: Map failed",优先检测系统位数和JVM位数是否一致,见第一步准备环境

 

posted @ 2022-08-14 12:29  CansonHai  阅读(316)  评论(0编辑  收藏  举报