赞
踩
这次是用的Win10进行的安装,因为线上的Kafka不方便排查问题,故在本地也安装了一套,用于本地开发测试使用
一般开源成熟的组件都会有自己的官网,里面有非常详细的文档以及工下载安装包的地址信息
访问Kafka官网https://kafka.apache.org/;
点击右上角进行下载;
4.下载完成直接解压安装
进入kafka_2.12-3.2.3\config下
找到zookeeper.properties进行编辑
(路径根据自定义 此处用于存储数据信息)
dataDir=D:\softwork\kafka_2.12-3.2.3\zookeeper-data
同上进入config
找到server.properties进行编辑
(路径根据自定义)
log.dirs=D:\softwork\kafka_2.12-3.2.3\server-data
CD D:\softwork\kafka_2.12-3.2.3\bin\windows
zookeeper-server-start.bat ..\..\config\zookeeper.properties
bat一键启动脚本(可以新建个文本把内容复制进去)
@echo off
title Zookeeper-start
CD D:\softwork\kafka_2.12-3.2.3\bin\windows
zookeeper-server-start.bat ..\..\config\zookeeper.properties
pause
正常启动(窗口端口等信息正常输出 )
CD D:\softwork\kafka_2.12-3.2.3\bin\windows
kafka-server-start.bat ..\..\config\server.properties
bat一键启动脚本(可以新建个文本把内容复制进去)
@echo off
title Kafka-start
CD D:\softwork\kafka_2.12-3.2.3\bin\windows
kafka-server-start.bat ..\..\config\server.properties
pause
正常启动
需要注意的是 在config下kafka的配置里
一定要把这一行给放开
(ps:默认是9092 我这边为了特意改的9093,如果是用9092的下面步骤记得改下端口)
listeners=PLAINTEXT://127.0.0.1:9093
因为Kafka存在版本兼容的问题,所有会导致一些命令启动或创建会报错
像我这版2.12的部署就遇到了版本问题
若命令不对 很可能出现此类型的异常
新版本
kafka-topics.bat --create --bootstrap-server localhost:9093 --replication-factor 1 --partitions 1 --topic haode
旧版本
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic haode
创建成功后会有以下内容输出
Created topic haode.
kafka-topics.bat --list --bootstrap-server localhost:9093
单独开启一个窗口
kafka-console-producer.bat --broker-list localhost:9093 --topic test
单独开启一个窗口
kafka-console-consumer.bat --bootstrap-server localhost:9093 --topic lwl from-beginning
这样两边都可以互相收发消息
[2022-09-27 14:47:05,896] ERROR Error while creating ephemeral at /brokers/ids/0, node already exists and owner '72092582897451008' does not match current session '72092582897451010' (kafka.zk.KafkaZkClient$CheckedEphemeral)
[2022-09-27 14:47:05,907] ERROR [KafkaServer id=0] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
org.apache.zookeeper.KeeperException$NodeExistsException: KeeperErrorCode = NodeExists
at org.apache.zookeeper.KeeperException.create(KeeperException.java:126)
at kafka.zk.KafkaZkClient$CheckedEphemeral.getAfterNodeExists(KafkaZkClient.scala:1903)
at kafka.zk.KafkaZkClient$CheckedEphemeral.create(KafkaZkClient.scala:1841)
at kafka.zk.KafkaZkClient.checkedEphemeralCreate(KafkaZkClient.scala:1808)
at kafka.zk.KafkaZkClient.registerBroker(KafkaZkClient.scala:96)
at kafka.server.KafkaServer.startup(KafkaServer.scala:332)
at kafka.Kafka$.main(Kafka.scala:109)
at kafka.Kafka.main(Kafka.scala)
解决方法:删除两个缓存文件
解决方案
修改zookeeper和kafka的内存大小
kafka-server-start.bat
if [ "x$KAFKA_HEAP_OPTS" = "x" ]; then
export KAFKA_HEAP_OPTS="-Xmx512M -Xms512"
fi
zookeeper-server-start.bat
IF ["%KAFKA_HEAP_OPTS%"] EQU [""] (
set KAFKA_HEAP_OPTS=-Xmx512M -Xms512M
)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。