我正在尝试在Windows上安装Kafka消息队列以进行测试(不用于生产)。
我发现这篇文章是关于如何在Windows上安装Apache Kafka 0.8:http://janschulte.wordpress.com/2013/10/13/apache-kafka-0-8-on-windows/
这是一篇很好的文章,但不幸的是它已经过时了。
有人知道实现这一目标的方法吗?
好吧,它最终并不复杂:)
唯一的步骤是:
C:/Kafka
)\bin\kafka-run-class.sh
并在文件末尾进行更改
exec $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@"
至
exec java $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp `cygpath -wp $CLASSPATH` $KAFKA_OPTS "$@"
就是这样..你现在可以运行ZooKeeper和Kafka服务器和start playing with topics and stuff ..
这是一个老线程,但对于2018年阅读此内容的人,我建议在docker中运行kafka。关于此的许多教程之一:security.protocol=SSL
ssl.truststore.location=C:\\ProgramData\\kafka\\kafka-truststore.jks
ssl.truststore.password=PASSWORD
ssl.keystore.location=C:\\ProgramData\\kafka\\kafka-keystore.jks
ssl.keystore.password=PASSWORD
ssl.key.password=PASSWORD
client.id=console-test
我刚刚尝试在Windows上安装Apache Kafka几天后记录了kafka-consumer-groups --bootstrap-server SERVERNAME:9094 --command-config C:\ProgramData\kafka\ssl.properties --list
后的步骤。希望这对你有所帮助。
一个更新的答案为其他人的利益仍然想知道这一点,我下载了二进制文件,一切都开箱即用。但是,源版本不起作用。
这些是我在Windows上运行kafka时所遵循的步骤
zookeeper-3.3.6.tar.gz
\zookeeper-3.3.6\bin> .\zkServer.cmd
中运行此命令现在这应该在localhost:2181
上运行Zookeeper实例kafka_2.10-0.10.0.1.tgz
.\config\server.properties
.\config\server.properties
取代log.dirs=c:/kafka/kafka-logs
./bin/windows
文件夹中找到这些文件.\bin\windows\kafka-server-start.bat .\config\server.properties
您可能会发现Kafka在bin文件夹下附带了Windows .bat文件,以帮助您在Windows下运行Kafka。但是,从版本0.8.0开始,这些bat文件没有更新,并且Kafka的一些逻辑已经改变(关于主题等)。
我试过两种方法来解决这个问题。一种是使用Cygwin或MinGW来模拟Linux环境并运行Linux shell脚本,但是会有大量与路径名相关的其他问题。另一个更简单且更少麻烦的解决方案是使用更正版本的Windows bat文件。
请参考这个blog post。
在0.9.0版中。 Windows的“bin”文件夹中有脚本。你可以使用它们。
现在它有效!
从Windows Shell运行
截至2019年4月,从他们的网站下载Kafka几乎是开箱即用的
下载和使用Windows版本的.bat文件如下所述:https://kafka.apache.org/quickstart
我这样做时遇到了两个问题:
1)JAVA_HOME被设置为不受支持的JDK,这导致了这种错误
线程“main”中的异常java.lang.VerifyError:未初始化的对象存在于向后分支209上
用JDK 11替换解决了这个问题。
2)JAVA_HOME不得包含导致“找不到指定文件”错误的空格。为了解决这个问题,我使用了像set JAVA_HOME=C:\Progra~1\Java\jdk-11.0.1
这样的缩短路径
从Cygwin运行
如果不是.bat文件,你想从cygwin运行.sh文件,实际上有很多工作需要完成,甚至在那之后可能会出现问题。我真的不推荐这个选项,但我确实使用它,因为它非常方便用于某些目的。
如果您的JAVA_HOME路径包含空格,例如“C:\ Program Files \ Java \ Jdk ...”你会看到这样的东西:
bin / kafka-run-class.sh:line 305:exec:C:\ Program:not found
一种解决方案是将jdk复制到没有空格的路径,并相应地更改Java主目录。
如果您不想更改JDK位置,可以按如下方式更改cygwin env变量:
JAVA_HOME="/cygdrive/c/Program Files/Java/jdk-11.0.1"
并改变线
exec $JAVA $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@"
至
exec "$JAVA" $KAFKA_HEAP_OPTS $KAFKA_JVM_PERFORMANCE_OPTS $KAFKA_GC_LOG_OPTS $KAFKA_JMX_OPTS $KAFKA_LOG4J_OPTS -cp $CLASSPATH $KAFKA_OPTS "$@"
kafka-run-class.sh中的日志参数还有另一个问题,我不得不替换该行
KAFKA_GC_LOG_OPTS="-Xlog:gc*:file=$LOG_DIR/$GC_LOG_FILE_NAME:time,tags:filecount=10,filesize=102400"
同
KAFKA_GC_LOG_OPTS="-Xlog:gc*"
即使经过所有这些更改,我偶尔会遇到Kafka关闭的问题,因为日志目录中的窗口样式路径不兼容,如下所述:Kafka 1.0 stops with FATAL SHUTDOWN error. Logs directory failed简而言之,您可能最好从Windows目录运行Kafka .bat脚本。 ..
是的,我在我的Windows机器上配置了ZOOKEEPER和Apache Kafka。对于ZOOKEEPER,只需配置ZOOKEEPER_HOME并设置路径,然后将zoo.sample.cfg重命名为zoo.cfg,并在zoo.cfg中更改dataDir的路径。
对于Apache Kafka,只需从bin文件夹解压缩并启动服务器,然后从Kafka目录下的windows文件夹启动Producer / Consumer
使用Chocolatey和Powershell:
chocolatey.exe install kafka
将C:\ProgramData\chocolatey\lib\kafka\tools\kafka_2.11-1.0.0\
添加到您的powershell路径重新启动powershell后,C:\ProgramData\chocolatey\lib\kafka\tools\kafka_2.11-1.0.0\
应该作为命令工作。
您还需要使用keystore和truststore安装ssl.properties。把他们放在进入notepad $PROFILE
并把它放入kafka-console-consumer
(请注意反斜杠的逃逸):
C:\ProgramData\kafka
现在像ssl.properties
这样的东西应该首先弹出一个你需要接受的防火墙警告,然后输出一个组列表。