kafka集群搭建(windows环境)
来源于: https://www.cnblogs.com/q1359720840/p/16050381.html
Apache Downloads 下载zk
准备三份
每个zk都创建这两个文件夹
在每个zkData都创建myid文件,没有后缀名
内容分别写着 1 2 3 (zk3.8-1 写的1,3.8-2写的2 ,类推)
将conf中刚下载的文件改成zoo.cfg
myid的数字和server.x对应 , 除了clientPort修改为2081,2082,2083之外别的照抄,由于是一个电脑操作,只能改端口不改ip
进入bin启动zkServer.cmd
启动报错
修改zkEnv的java的home
如果还是找不到,建议把java的jdk复制一份放在别的盘符
都启动成功后
Apache Kafka 下载kafka
报错:
D:\kafka\kafka1\bin\windows>kafka-server-start.bat ../../config/server.properties
Error: missing `server' JVM at `C:\Program Files (x86)\Java\jre1.8.0_131\bin\server\jvm.dll'.
Please install or use the JRE or JDK that contains these missing components.
搜到jvm.dll,复制到当前文件夹
继续启动,报错
Unrecognized VM option 'UseCompressedOops'
Did you mean '(+/-)CheckCompressedOops'?
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
删除这个:kafka-run-class.bat文件中
启动第一个没问题,启动第二个第三个报错。
[2022-03-24 17:22:15,099] FATAL [Kafka Server 2], Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
kafka.common.KafkaException: Failed to acquire lock on file .lock in D:\tmp\kafka-logs. A Kafka instance in another process or thread is using this directory.
at kafka.log.LogManageranonfun$lockLogDirs$1.apply(LogManager.scala:98)atkafka.log.LogManageranonfunlockLogDirs1.apply(LogManager.scala:95)
at scala.collection.TraversableLikeanonfun$map$1.apply(TraversableLike.scala:233)atscala.collection.TraversableLikeanonfunmap1.apply(TraversableLike.scala:233)
at scala.collection.IndexedSeqOptimizedclass.foreach(IndexedSeqOptimized.scala:34)atscala.collection.mutable.WrappedArray.foreach(WrappedArray.scala:33)atscala.collection.TraversableLikeclass.map(TraversableLike.scala:233)
at scala.collection.mutable.WrappedArray.map(WrappedArray.scala:33)
at kafka.log.LogManager.lockLogDirs(LogManager.scala:95)
把config的/server.properties
然后在外面创建文件夹
正常启动成功
测试集群
(1)创建一个 topic
kafka-topics.bat --create --zookeeper 127.0.0.1:2181 --replication-factor 1 --partitions 1 --topic test
(2)查看是否创建成功
kafka-topics.bat --list --zookeeper localhost:2181
(3)发送消息
kafka-console-producer.bat --broker-list localhost:9092 --topic test This is a message
(4)接收消息
kafka-console-consumer.bat --zookeeper localhost:2181 --topic test --from-beginning
不同客户端能接收到消息,说明配置成功