我想在当地经营卡夫卡。我已经安装并运行了Zookeeper。我已经下载了Kafka 2.11-1.1.0的二进制文件。我已将server.config
中的日志位置调整为有效路径。当我运行.\bin\windows\kafka-server-start.bat .\config\server.properties
时,我收到一条错误消息
该系统找不到指定的路径。
我在运行kafka-server-start.bat命令时遇到了这个问题。我仔细检查以确保kafka二进制文件路径中没有空格以及JAVA_HOME中的正确语法。
终于意识到问题是由于JAVA_HOME路径中的空间。
C:\ Program Files \ Java \ jdk1.8.0_144
程序和文件之间有一个空格。我更改了Java目录并将JAVA_HOME变量更新为
C:\的Java \ jdk1.7.0_51
这一变化解决了我的问题。我使用setx命令更改JAVA_HOME中的值。
setx -m JAVA_HOME "C:\Java\jdk1.7.0_51"
事实证明kafka-run-class.bat
抛出了这个错误,因为系统变量中JAVA_HOME
的路径格式不正确(在我的例子中,我已经添加了/ bin。)从路径中删除/ bin,并使其成为现有的Java安装文件夹,让一切运行正常。
我遇到了同样的问题,但这不是因为JAVA_HOME
环境变量的错误路径。
这是因为我在一个包含空格的路径中提取了我的卡夫卡酒厂!
首先它在这里:
E:\ Apache Kafka \ kafka_2.11-2.1.0
然后我将它重新定位在这个新路径中(没有任何空格!):
E:\ ApacheKafka \ kafka_2.11-2.1.0
问题解决了!
希望这可以帮助。
要添加到现有答案,您还可以在运行Kafka提供的zookeeper-server-start
命令(以及bin/windows
文件夹中的几乎所有其他脚本)时获取错误,因为它还使用kafka-run-class
,因此依赖于有效的JAVA_HOME
环境变量路径。
cd D:\Downloads\kafka
.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties
迟到的回复,但我希望它有所帮助。我有同样的问题,发现有人将JAVA更新为更新的版本,即我的JAVA_HOME系统变量指向一个不存在的文件夹。奇怪,因为我没有做到,但上面的答案激发我去检查它。
正如许多人所提到的,如果您运行的任何kafka * .bat脚本(包括zookeeper)引用了错误的JAVA_HOME系统变量或包含空格的系统变量,则会发生这种情况。
您可以通过将JAVA_HOME更改为缩短的路径名来解决此问题。例如
set JAVA_HOME=C:\Progra~1\Java\jdk-11.0.1
附:
为方便起见,我创建了一个CMD桌面快捷方式,将JAVA_HOME设置为适用于Kafka,将CD设置为我的kafka安装。我的桌面快捷方式如下:
%windir%\System32\cmd.exe /k set JAVA_HOME=C:\Progra~1\Java\jdk-11.0.1& f: & cd f:\kafka\kafka_2.12-2.2.0
我也有这个问题。在我的例子中,我将java安装在C:\ Java \ bin和JAVA_HOME中定义为
JAVA_HOME = C:\的Java \ BIN
我需要改变
C:\工具\ kafka_2.12-2.2.0 \ BIN \ kafka-run-class.sh
从这一点224到229行
# Which java to use
if [ -z "$JAVA_HOME" ]; then
JAVA="java"
else
JAVA="$JAVA_HOME/bin/java"
fi
对此:
# Which java to use
if [ -z "$JAVA_HOME" ]; then
JAVA="java"
else
JAVA="$JAVA_HOME/java"
fi
因为它将java分配给C:\ Java \ bin / bin / java,然后在同一文件的306上失败。
BTW:我在windows中使用git bash shell。这允许我运行bin / * .sh脚本而不是bin / windows / * .bat脚本
我也改变了dataDir的值
C:\工具\ kafka_2.12-2.2.0 \设置\ zookeeper.properties
至
dataDir=C:\\Tools\\kafka_2.12-2.2.0\\zookeeper-data