如何在Windows上安装Kafka?

时间:2014-04-16 16:25:51

标签: windows apache-kafka apache-zookeeper

我尝试在Windows 上安装Kafka邮件队列以进行测试(不用于生产)。

我发现这篇文章是关于如何在Windows上安装Apache Kafka 0.8:http://janschulte.wordpress.com/2013/10/13/apache-kafka-0-8-on-windows/

这是一篇好文章,但遗憾的是它已经过时了。

有人知道实现这一目标的方法吗?

14 个答案:

答案 0 :(得分:25)

好的,它最终并不复杂:)

唯一的步骤是:

  1. 下载 Kafka 并将其解压缩到好处(让我们说C:/Kafka
  2. 安装 Cygwin
  3. 修改\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 "$@"

  4. 环境变量中,将java添加到路径系统变量:

    enter image description here

  5. 那就是..你现在可以运行ZooKeeper和Kafka服务器以及start playing with topics and stuff ..

答案 1 :(得分:18)

一个更新的答案为了其他人的利益仍然对此感到疑惑,我下载了二进制文件,一切都开箱即用。但是,源版本没有用。

答案 2 :(得分:15)

以下是我在Windows上运行kafka的步骤

  1. 首先安装Zookeeper(downloaded v3.3.6)zookeeper-3.3.6.tar.gz
  2. 解压缩Zookeeper并在powershell / cmd \zookeeper-3.3.6\bin> .\zkServer.cmd中运行此命令现在这应该是localhost:2181上的Zookeeper实例
  3. 下载Kafka二进制版本(downloaded v0.10.0.1)kafka_2.10-0.10.0.1.tgz
  4. 提取Kafka,修改一些配置的时间
  5. 在Kafka内部提取中,您可以找到.\config\server.properties
  6. .\config\server.properties替换log.dirs=c:/kafka/kafka-logs
  7. 注意:确保在相关路径中创建这些文件夹
  8. 快乐新闻:现在Kafka附带windows .bat脚本,您可以在./bin/windows文件夹
  9. 中找到这些文件
  10. 启动powershell / cmd并运行此命令以启动Kafka代理.\bin\windows\kafka-server-start.bat .\config\server.properties
  11. DONE!,现在您有一个正在运行的Zookeeper实例和一个Kafka代理。

答案 3 :(得分:13)

您可能会发现Kafka附带了 bin 文件夹下的Windows .bat文件,以帮助您在Windows下运行Kafka。但是,从版本0.8.0开始,这些bat文件没有更新,并且Kafka的一些逻辑已经改变(关于主题等)。

我尝试了两种方法来解决这个问题。一种是使用Cygwin或MinGW来模拟Linux环境并运行Linux shell脚本,但是会有大量与路径名相关的其他问题。另一个更简单且更少麻烦的解决方案是使用更正版本的Windows bat文件。

请参阅此blog post

答案 4 :(得分:3)

在0.9.0版本中。在" bin"中有脚本Windows文件夹。你可以使用它们。

答案 5 :(得分:1)

  1. https://kafka.apache.org/downloads
  2. 下载Kafka的任何二进制版本(我已下载kafka_2.11-0.10.2.0)
  3. 将其解压缩到任何文件夹(我已经提取到" C:\ Kafka")
  4. 打开命令提示符
  5. 转到提取Kafka的文件夹(C:\ Kafka \ kafka_2.11-0.10.2.0)
  6. 运行此命令。\ bin \ windows \ zookeeper-server-start.bat。\ config \ zookeeper.properties 启动Zookeeper
  7. 运行此命令。\ bin \ windows \ kafka-server-start.bat。\ config \ server.properties 启动Kafka

  8. 现在它有效!

答案 6 :(得分:1)

从Windows Shell运行

截止到2019年4月,从他们的网站下载Kafka几乎可以立即在Windows上运行

在此介绍了如何下载和使用Windows版本的.bat文件: https://kafka.apache.org/quickstart

执行此操作时遇到两个问题:

1)JAVA_HOME设置为不支持的JDK,导致了这种错误

  

线程“主”中的异常java.lang.VerifyError:未初始化的对象   存在于向后分支209

替换JDK 11解决了该问题。

2)JAVA_HOME不能包含引起“找不到指定文件”错误的空格。为了解决这个问题,我使用了缩短的路径,例如set JAVA_HOME=C:\Progra~1\Java\jdk-11.0.1


从Cygwin运行

如果要从 cygwin 运行.sh文件而不是.bat文件,则实际上需要做很多工作,甚至在此之后可能仍然存在一些问题以后再说。我真的不能推荐此选项,但是我确实会使用它,因为它出于某些目的非常方便。

如果您的JAVA_HOME路径包含空格,例如“ 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*"

即使在所有这些更改之后,我有时也会遇到由于日志目录中不兼容的Windows样式路径而导致Kafka关闭的问题,如下所述: Kafka 1.0 stops with FATAL SHUTDOWN error. Logs directory failed 简而言之,您最好从Windows目录运行Kafka .bat脚本...

答案 7 :(得分:1)

请参阅官方文档

https://kafka.apache.org/quickstart

在Windows平台上,使用bin\windows\代替bin/,并将脚本扩展名更改为.bat

答案 8 :(得分:0)

是的,我在Windows机器上配置了ZOOKEEPER和Apache Kafka。 对于ZOOKEEPER,只需配置ZOOKEEPER_HOME并设置路径,然后将zoo.sample.cfg重命名为zoo.cfg,并在zoo.cfg中更改dataDir的路径

对于Apache Kafka,只需从bin文件夹解压缩并启动服务器,然后从Kafka目录下的windows文件夹启动Producer / Consumer

答案 9 :(得分:0)

使用Chocolatey和Powershell:

  1. chocolatey.exe install kafka - >将Kafka安装到C:\ProgramData\chocolatey\lib\kafka\tools\kafka_2.11-1.0.0\ - 您的版本可能会有所不同
  2. 使用C:\ProgramData\chocolatey\lib\kafka\tools\kafka_2.11-1.0.0\
  3. notepad $PROFILE添加到您的powershell路径

    重新启动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之类的东西应首先弹出一个你需要接受的防火墙警告,然后输出一个组列表。

答案 10 :(得分:0)

这是一个旧线程,但是对于在2018年阅读此内容的人,我建议在docker中运行kafka。 关于此的众多教程之一: https://iteritory.com/kafka-docker-image-installation-usage-tutorial-windows/

答案 11 :(得分:0)

几天前,我刚刚尝试在Windows上安装Apache Kafka,并记下了帖子Install and setup Kafka on Windows中的步骤。希望对您有帮助。

答案 12 :(得分:0)

Kafka&Zookeeper具有内置的Windows特定脚本,最新版本对此进行了验证。如其他答案所述,Windows脚本的目录将在Kafka的kafka_2.12-2.4.0\bin\windows下。 Zookeeper脚本仅在/ bin下,但以“ * .cmd”结尾

与ZooKeeper和Kafka一样,您将需要执行一些次要的步骤

  • 为ZooKeeper创建zoo.cfg
  • 为ZeeKeeper配置Windows特定的数据目录
  • Kafka带有默认配置文件,并且具有非常好的操作系统特定处理功能,即log.dirs=/tmp/kafka-logs,但它将无缝地在C:/目录下创建该目录结构。

在具有次要配置的Windows上快速设置具有多个Kafka代理的Kafka群集也很容易。您还可以从Windows命令提示符创建主题,发布/使用消息,验证主题/分区等。这是针对Windows特定设置Kafka Setup on Windows OS | Basic Installation, Setup, Verification, Cluster Setup, Storage

的很好的详细参考

答案 13 :(得分:0)

我创建了一篇关于 installing kafka on windows 10 的新文章,仅用于测试。处理命令过长问题,通过在kafka服务器配置文件中增加timeout参数和注释broker.id参数解决kafka服务器和zookeeper服务器的连接问题。