如何在windows上安装kafka?

pxiryf3j  于 2021-06-07  发布在  Kafka
关注(0)|答案(11)|浏览(507)

我正在尝试在windows上安装kafka消息队列以进行测试(而不是用于生产)。
我找到了这篇关于如何在windows上安装apache kafka 0.8的文章:http://janschulte.wordpress.com/2013/10/13/apache-kafka-0-8-on-windows/
这是一篇好文章,但不幸的是,它已经过时了。
有人知道实现这个目标的方法吗?

q43xntqr

q43xntqr1#

是的,我已经在我的windows机器上配置了zookeeper和apachekafka。对于zookeeper,只需配置zookeeper\u home并设置路径,然后将zoo.sample.cfg重命名为zoo.cfg,并更改zoo.cfg中datadir的路径
对于apachekafka,只需解压缩并从bin文件夹启动服务器,然后从kafka目录下的windows文件夹启动producer/consumer

u1ehiz5o

u1ehiz5o2#

在版本0.9.0中。windows的“bin”文件夹中有脚本。你可以用它们。

fquxozlt

fquxozlt3#

参考官方文件,
https://kafka.apache.org/quickstart
在windows平台上使用 bin\windows\ 而不是 bin/ ,并将脚本扩展名更改为 .bat .

gr8qqesn

gr8qqesn4#

kafka&zookeeper有内置的windows特定脚本,已在最新版本中验证。如其他答案所述,windows脚本的目录将在 kafka_2.12-2.4.0\bin\windows 为了Kafka。zookeeper脚本仅在/bin下,但以“*.cmd”结尾
将有几个小的额外步骤,你将不得不与zookeeper和Kafka一样做
为zookeeper创建zoo.cfg
为zeekeeper配置windows特定的数据目录
kafka附带了默认的配置文件&它有非常好的操作系统特定的处理。 log.dirs=/tmp/kafka-logs 但它将在下面创建目录结构 C:/ 无故障的无缝目录。
在windows上用小配置快速设置带有多个kafka代理的kafka集群也很容易。您还可以从windows命令提示符创建主题、发布/使用消息、验证主题/分区等。这里是一个很好的详细的参考,为特定于windows的安装Kafka安装在windows操作系统|基本安装,设置,验证,群集设置,存储

z18hc3ub

z18hc3ub5#

一个更为最新的答案是为了让其他仍然对此感到疑惑的人受益,我下载了二进制文件,所有的东西都是开箱即用的。然而,源代码版本不起作用。

aelbi1ox

aelbi1ox6#

从下载Kafka的任何二进制版本(我下载了Kafka2.11-0.10.2.0)https://kafka.apache.org/downloads
将其解压缩到任何文件夹(我已解压缩到“c:\kafka”)
打开命令提示符
转到提取Kafka的文件夹(c:\kafka\kafka\u 2.11-0.10.2.0)
运行此命令。\bin\windows\zookeeper-server-start.bat.\config\zookeeper.properties以启动zookeeper
运行此命令。\bin\windows\kafka-server-start.bat.\config\server.properties以启动kafka
现在成功了!

r8xiu3jd

r8xiu3jd7#

您可能会发现kafka在bin文件夹下附带了windows.bat文件,以帮助您在windows下运行kafka。但是,这些bat文件在版本0.8.0之后没有更新,Kafka的一些逻辑也发生了变化(关于主题等)。
我试过两种方法来解决这个问题。一种是使用cygwin或mingw来模拟linux环境并运行linuxshell脚本,但是与路径名相关的问题还有很多。另一种更简单、麻烦更少的解决方案是使用windows bat文件的正确版本。
请参考这篇博文。

piwo6bdm

piwo6bdm8#

巧克力和powershell: chocolatey.exe install kafka ->将Kafka安装到 C:\ProgramData\chocolatey\lib\kafka\tools\kafka_2.11-1.0.0\ -当然,你的版本可能会有所不同
添加 C:\ProgramData\chocolatey\lib\kafka\tools\kafka_2.11-1.0.0\ 到您的powershell路径使用 notepad $PROFILE 重新启动powershell后 kafka-console-consumer 应该像命令一样工作。
您还需要使用keystore和truststore安装ssl.properties。把它们放进 C:\ProgramData\kafka 把它放进 ssl.properties (请注意反斜杠的转义):

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

现在的情况是 kafka-consumer-groups --bootstrap-server SERVERNAME:9094 --command-config C:\ProgramData\kafka\ssl.properties --list 应该首先弹出一个防火墙警告,您需要接受它,然后输出一个组列表。

wgx48brx

wgx48brx9#

从windows shell运行
截至2019年4月,从他们的网站下载Kafka在windows上几乎是开箱即用
下载和使用windows版本的.bat文件如下:https://kafka.apache.org/quickstart
我做这件事时遇到了两个问题:
1) javahome被设置为不受支持的jdk,这导致了这种错误
线程“main”java.lang.verifyerror中出现异常:反向分支209上存在未初始化的对象
用jdk 11替换解决了这个问题。
2) javau home不能包含导致“找不到指定文件”错误的空格。为了解决这个问题,我使用了一个缩短的路径,比如 set JAVA_HOME=C:\Progra~1\Java\jdk-11.0.1 从cygwin那里逃跑
如果您想从cygwin运行.sh文件而不是.bat文件,那么实际上需要做很多工作,即使在这之后,也可能会出现问题。我真的不能推荐这个选项,但我确实使用它,因为它在某些方面非常方便。
如果java\u主路径包含空格,例如“c:\program files\java\jdk…”,您将看到如下内容:
bin/kafka-run-class.sh:第305行:exec:c:\program:找不到
一种解决方案是将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关闭的问题,因为logs目录中有一个不兼容的windows风格的路径,如下所述:kafka 1.0停止时出现致命的关闭错误。日志目录失败简而言之,您最好从windows目录运行kafka.bat脚本。。。

xxslljrj

xxslljrj10#

以下是我在windows上运行kafka的步骤
先安装zookeeper(我下载了v3.3.6) zookeeper-3.3.6.tar.gz 提取zookeeper并在powershell/cmd中运行此命令 \zookeeper-3.3.6\bin> .\zkServer.cmd 现在应该在 localhost:2181 下载Kafka二进制版本(我下载了v0.10.0.1) kafka_2.10-0.10.0.1.tgz 提取Kafka,时间修改一些配置
在Kafka提取你可以找到 .\config\server.properties.\config\server.properties 替换 log.dirs=c:/kafka/kafka-logs 注意:确保在相关路径中创建这些文件夹
好消息:现在kafka附带了windows.bat脚本,你可以在里面找到这些文件 ./bin/windows 文件夹
启动powershell/cmd并运行此命令以启动kafka代理 .\bin\windows\kafka-server-start.bat .\config\server.properties 完成!,现在您有了一个正在运行的zookeeper示例和一个kafka代理。

2mbi3lxu

2mbi3lxu11#

好了,终于不复杂了:)
唯一的步骤是:
下载Kafka并将其解压缩到某个好的地方(比如 C:/Kafka )
安装cygwin
编辑 \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 -cpcygpath -wp $CLASSPATH$KAFKA_OPTS "$@" 在环境变量中,将java添加到path系统变量中:

就这样。。你现在可以运行zookeeper和kafka服务器,开始玩主题和其他东西。。

相关问题