1.官网下载kafka源码包,http://kafka.apache.org/downloads,这里版本为0.11.0.1。
2.下载下来的源码执行gradle idea,没有安装gradle的需要先安装。生成Idea工程并导入
3.kafka是scala编写,因此需要安装scala插件,File→ Settings→Plugins
如果搜索没有则点击 Browse repositories...
拷贝图中的url到浏览器选择相应的版本下载,这里版本号为v2017.1.20,下载到任意目录,进行第3步开头的安装即可。
4.Run→ Edit Configurations,按下图配置
5.按照需要启动相应的模块调试即可
注意:
1.启动kafkaServer时如报以下错误,请将config/log4j.properties文件拷贝到core/src/main/scala或者core/src/main/resources下,总之要让Kafka能找到log4j文件。
log4j:WARN No appenders could be found for logger (kafka.server.KafkaConfig). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
2.启动kafkaServer报以下错误,请删除config/server.properties文件下的log.dirs=D:\\tmp\\kafka-src\\kafka-logs文件夹后再启动。
java.nio.file.FileSystemException: D:\tmp\kafka-src\kafka-logs\FM_EMF_UP_TOPIC-0\00000000000000000000.timeindex: 另一个程序正在使用此文件,进程无法访问。 at sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:86) at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:97) at sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:102) at sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:269) at sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:108) at java.nio.file.Files.deleteIfExists(Files.java:1165) at kafka.log.Log$$anonfun$loadSegmentFiles$3.apply(Log.scala:318) at kafka.log.Log$$anonfun$loadSegmentFiles$3.apply(Log.scala:279) at scala.collection.TraversableLike$WithFilter$$anonfun$foreach$1.apply(TraversableLike.scala:733) at scala.collection.IndexedSeqOptimized$class.foreach(IndexedSeqOptimized.scala:33) at scala.collection.mutable.ArrayOps$ofRef.foreach(ArrayOps.scala:186) at scala.collection.TraversableLike$WithFilter.foreach(TraversableLike.scala:732) at kafka.log.Log.loadSegmentFiles(Log.scala:279) at kafka.log.Log.loadSegments(Log.scala:383) at kafka.log.Log.<init>(Log.scala:186) at kafka.log.Log$.apply(Log.scala:1609) at kafka.log.LogManager$$anonfun$loadLogs$2$$anonfun$5$$anonfun$apply$12$$anonfun$apply$1.apply$mcV$sp(LogManager.scala:172) at kafka.utils.CoreUtils$$anon$1.run(CoreUtils.scala:57) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745)