windows kafka安装及问题解决

来源:互联网 发布:智巢网络 编辑:程序博客网 时间:2024/05/22 07:40

一、安装JDK
不做说明,自行解决。
二、安装zooeleeper
下载地址:http://apache.fayea.com/zookeeper/
1、解压
2、将“zoo_sample.cfg”重命名为“zoo.cfg”
3、在任意文本编辑器(如notepad)中打开zoo.cfg,找到并编辑dataDir,最好设置在解压目录下(D:\software\zookeeper-3.4.6\tmp,我的目录)
4、 在系统变量中添加ZOOKEEPER_HOME = 解压目录\zookeeper-3.4.6
5、编辑path系统变量,添加为路径%ZOOKEEPER_HOME%\bin;
6、打开新的cmd,输入zkserver,运行Zookeeper。
7、命令行提示如下:说明本地Zookeeper启动成功
这里写图片描述

三、安装与运行Kafka
下载地址:http://kafka.apache.org/downloads.html,注意要下载二进制版本的
1、解压
2、编辑文件“server.properties”,找到并编辑log.dirs,修改成自己的(最好就在解压目录下)
3、进入目录下,打开cmd,运行.\bin\windows\kafka-server-start.bat .\config\server.properties命令。
错误提示:kafka-run-class.bat不是内部或者外部命令
原因:kafka-run-class.bat在bin\windows目录下,而不是当前目录下,脚本默认是当前
解决:到bin\windows目录下运行kafka-server-start.bat ..\config\server.properties命令。
错误提示:找不到或无法加载主类 kafka.kafka
解决办法:网上说解决办法就是将kafka-run-class.bat文件中

set COMMAND= %JAVA% %KAFKA_OPTS% %KAFKA_JMX_OPTS% -cp %CLASSPATH% %*

修改为

set COMMAND= %JAVA% %KAFKA_OPTS% %KAFKA_JMX_OPTS% -cp "%CLASSPATH%" %*

修改了还是出错,最终自己解决办法如下:
将windows里的bat全部复制到外面bin目录下,修改一下kafka-run-class.bat文件。因为里面写的相对路径和引入的jar会导致出错。所以我们将里面的这段代码:

set ivyPath=%USERPROFILE%\.ivy2\cacheset snappy=%ivyPath%/org.xerial.snappy/snappy-java/bundles/snappy-java-1.0.5.jar     call :concat %snappy%set library=%ivyPath%/org.scala-lang/scala-library/jars/scala-library-2.8.0.jar     call :concat %library%set compiler=%ivyPath%/org.scala-lang/scala-compiler/jars/scala-compiler-2.8.0.jar     call :concat %compiler%set log4j=%ivyPath%/log4j/log4j/jars/log4j-1.2.15.jar     call :concat %log4j%set slf=%ivyPath%/org.slf4j/slf4j-api/jars/slf4j-api-1.6.4.jar     call :concat %slf%set zookeeper=%ivyPath%/org.apache.zookeeper/zookeeper/jars/zookeeper-3.3.4.jar     call :concat %zookeeper%set jopt=%ivyPath%/net.sf.jopt-simple/jopt-simple/jars/jopt-simple-3.2.jar     call :concat %jopt%for %%i in (%BASE_DIR%\core\target\scala-2.8.0\*.jar) do (     call :concat %%i)for %%i in (%BASE_DIR%\core\lib\*.jar) do (     call :concat %%i)for %%i in (%BASE_DIR%\perf\target\scala-2.8.0/kafka*.jar) do (     call :concat %%i) 

替换成

for %%i in (%BASE_DIR%\libs\*.jar) do (     call :concat %%i)

在bin目录下运行:kafka-server-start.bat ..\config\server.properties
成功!

参考:http://blog.csdn.net/u013132051/article/details/68925935