Kafka/Kafka Stream源码阅读环境搭建

**源码环境说明:
OS:Ubuntu16.04.6,IDE:Intellij IDEA,JDK8,Scala 2.11.8,
**

安装JDK

  1. 添加仓库源
    sudo add-apt-repository ppa:webupd8team/java
  2. 更新软件包列表
    sudo apt-get update
  3. 安装JDK
    sudo apt-get install oracle-java8-installer
  4. 接下来接受协议(Yes选项),然后就可以了
  5. 验证JDK是否安装成功
    java -version
  6. 最后的结果:
    JDK安装结果图

下载并安装Gradle

  1. 下载Gradle安装包
    wget https://downloads.gradle.org/distributions/gradle-4.10.2-bin.zip
  2. 解压Gradle压缩包
    unzip gradle-4.10.2-bin.zip
  3. 配置环境变量
    sudo vim /etc/profile
  4. 向/etc/profile文件中添加以下内容:
    export GRADLE_HOME=/soft/grandle_4_10_2
    export PATH=$GRADLE_HOME/bin:$PATH
  5. 保存退出,并执行如下命令使配置生效
    source /etc/profile

下载并安装Scala

  1. 从http://www.scala-lang.org/download/all.html中下载scala 2.11.8
  2. 解压,修改 /etc/profile 配置环境变量,然后执行 source命令使配置生效
  3. 结果如下图:
    下载的文件以及解压包(修改了解压包的名称)
    /etc/profile添加的内容
    Scala 安装结果

下载Kafka并构建源码环境

  1. 从http://kafka.apache.org/downloads下载Kafka源码,这里下载的是2.1.1
  2. 解压Kafka源码,并修改一些文件的内容
    2.1 修改kafka-2.1.1-src/gradle.properties文件,将ScalaVersion该为你安装的版本,这里是2.11.8
    在这里插入图片描述
    2.2 修改kafka-2.1.1-src/gradle/dependencies.gradle,将其中的def defaultScala211Version修改为2.11.8
  3. 编译kafka源码,进入kafka-2.1.1-src文件夹下,然后执行如下命令:
    gradle idea
    注意:如果IDE是eclipse的话应该执行gradle eclipse,这里IDE为Intellij IDEA
  4. 然后将kafka源码导入到Intellij IDEA中,导入的时候可以选择导入的是Gradle工程,接下来需要对IDEA做一些设置
    4.1 在IDEA中安装Scala插件,进入IDEA然后点击File->Settings->Plugins,然后选择Scala进行安装
    IDEA安装Scala插件
  5. 下面是为运行源码做一些配置
    5.1 修改kafka-2.1.1-src/config下的server.properties中的log.dir配置log存放位置
    配置Kafka Log存放位置
    5.2 将kafka-2.1.1-src/config中的log4j.properties拷贝到你要运行的代码的位置,记得代码要有Main函数
  6. 下面的示例是运行kafka-2.1.1-src/streams/example中的WordCountDemo,配置过程如下:
    6.1 将config文件夹下的log4j.properties拷贝到resources文件夹下,没有该文件夹就自己创建一个,如下图:
    拷贝log4j.properties
    6.2 添加运行代码的配置,如下图,先点击Edit Configurations…
    在这里插入图片描述
    6.3 配置 Configurations,依次点击’+’->Application,接下来填写如下图(Name可以不同):
    填写Configuration
    6.4 到这里不一定能跑起来这个示例,可以下载Kafka,按照如下过程进行配置:https://kafka.apache.org/22/documentation/streams/quickstart
    当然你也需要配置你下载的kafka中的server.properties和zookeeper.properties还有log4j.properties文件,接下来按照上面的链接 从Step1一直到Step3结束,然后操作Step4中的下面2步,Step4中的第1步不要操作:
    在这里插入图片描述
    接下来,然后启动在IDEA中配置的WordCountDemo,点击Run或者Debug,整个结果如下图:
    Kafka Stream示例结果
  7. 最后就可以调试代码,阅读源码了。
  8. 如果出现Failed to load class "org.slf4j.impl.StaticLoggerBinder,可以参考我的References中的第3篇博客或者其他博客。

References:
[1]:https://blog.csdn.net/u012707739/article/details/78489833
[2]: https://kafka.apache.org/22/documentation/streams/quickstart#quickstart_streams_prepare
[3]: http://www.javashuo.com/article/p-wbzznfar-m.html