Kafka创建Topic报错:java.lang.ClassNotFoundException: kafka.admin.TopicCommand
Kafka创建Topic时出现ClassNotFoundException的解决方法
问题详情
执行创建Topic命令:
.\bin\kafka-topics.sh --bootstrap-server localhost:9092 --create --topic myTopic --partitions 1 --replication-factor 1
出现异常:caused by: java.lang.ClassNotFoundException: kafka.admin.TopicCommand
环境信息:
- Kafka版本:3.3.1
- kafka-topics.sh路径:
C:\kafka_2.13-3.3.1\bin - 脚本内容:
#!/bin/bash # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. exec $(dirname $0)/kafka-run-class.sh kafka.admin.TopicCommand "$@"
解决步骤
使用Windows专用脚本
在Windows系统下,kafka-topics.sh是为Linux/macOS设计的脚本,应该改用官方提供的Windows版本脚本。执行以下命令:.\bin\windows\kafka-topics.bat --bootstrap-server localhost:9092 --create --topic myTopic --partitions 1 --replication-factor 1检查安装包完整性
如果执行bat脚本仍报错,检查Kafka安装目录下的libs文件夹,确认存在kafka_2.13-3.3.1.jar和kafka-admin-client-3.3.1.jar。若文件缺失,重新下载完整的Kafka 3.3.1二进制安装包。(不推荐)修改sh脚本适配Windows
若一定要使用kafka-topics.sh,需将脚本最后一行的kafka-run-class.sh改为Windows版本的kafka-run-class.bat,修改后的内容:exec $(dirname $0)/kafka-run-class.bat kafka.admin.TopicCommand "$@"但优先推荐使用官方提供的bat脚本,避免兼容性问题。
内容的提问来源于stack exchange,提问作者Faheem azaz Bhanej
相关产品推荐
相关产品推荐

