Kafka源码编译(kafka0.8.2.2)并用IDEA(2018.3)运行

一: 准备工作

       安装JDK(1.8或以上)、Scala(2.11.x)、Gradle

    可以参考博客 https://blog.csdn.net/u013256816/article/details/78533725

  本机安装如下:

二:下载kafka源码解压

三:在解压目录下执行gradle idea

四:编译成功

     产生如下三个文件:

五:如果编译失败,报错如下

gradle idea  
Starting a Gradle Daemon (subsequent builds will be faster)  
Building project 'core' with Scala version 2.10.4  
  
FAILURE: Build failed with an exception.  
  
* Where:  
Build file '/opt/bigdata/kafka/kafka-0.8.2.2-src/build.gradle' line: 230  
  
* What went wrong:  
A problem occurred evaluating root project 'kafka-0.8.2.2-src'.  
> Failed to apply plugin [class 'org.gradle.api.plugins.scala.ScalaBasePlugin']  
   > No such property: useAnt for class: org.gradle.api.tasks.scala.ScalaCompileOptions  
  
* Try:  
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.  
  
BUILD FAILED  

       解决办法:

         在build.gradle文件中添加如下(=号前后最好不带空格):

ScalaCompileOptions.metaClass.daemonServer=true
ScalaCompileOptions.metaClass.fork=true
ScalaCompileOptions.metaClass.useAnt=false
ScalaCompileOptions.metaClass.useCompileDaemon=false

六:IDEA打开Kafka源码

      IDEA必选先装Scala插件(在setting/plugins下搜索安装,或离线安装)

     1.选择build.gradle文件打开

2.建立索引,点击导入

点击Import Gradle project之后,再次去掉对勾,点击OK

七:运行Kafka源码

       1.将config目录下的log4j.properties拷贝到core/src/main/scala目录下

如果拷贝到此目录仍启动仍无效,可在main下新建resources目录。将log4j.properties拷贝到resources下。

2.设置server.properties

   设置broker.id、port、log.dirs、zookeeper.connect

特别要说一下的是:log.dirs

由于是本地运行,kafka运行的log会在默认路径下,不方便查看,因此我设置了两个目录用于存储kafka运行过程中产生的两不同的日志

在server.properties中log.dirs设置appLog

在拷贝后的core/src/main/scala下的log4j.properties中添加:

kafka.logs.dir=F:\\linuxLocalRun\\kafka\\kafka_2.11-2.0.1\\log\\broker1\\runLog

3.配置Application

选择core/src/main/scala/kafka/Kafka.scala作为Main Class

八:启动zookeeper

双击zkServer.cmd   本地运行zookeeper

九:运行Kafka源码

启动成功。并成为Leaders

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值