实操 | 10分钟带你轻松掌握 Kafka 源码编译环境搭建,调试无忧

点击卡片“大数据实战演练”,

回复“资料”可领取独家整理的学习资料!

说明:

运行环境:windows 10

Kafka 版本:1.1.1

idea 版本:2020.03

一、源码下载

https://github.com/apache/kafka/archive/refs/tags/1.1.1.tar.gz

如果下载缓慢,可使用该 站加速下载:
https://shrill-pond-3e81.hunsh.workers.dev/

得到源码之后,最好执行下 git initgit add .git commit "xxx"命令,这样后续文件的变化,在 git 上都能追溯到。

二、环境配置

1、Gradle

首先确认 Gradle 版本,打开 build.gradle 文件,发现 gradleVersion = “4.8.1”。

2、Scala

然后再确认 Scala 版本,打开 gradle.properties 文件,可以看到 scalaVersion 是 2.11.12 。

三、源码编译

强烈建议先别用 idea 等工具打开项目!!!

1、编译之前,建议先配置 gradle 版本库为阿里源:

maven { url 'https://maven.aliyun.com/repository/public' }

可以先用 Sublime 或 Notepad++ 来编译文件:

2、执行 gradle 命令,会生成 gradlew、gradlew.bat、gradle/wrapper 目录。

四、本地运行 kafka

1、执行 gradlew idea 命令。

2、idea 安装 Scala 插件

插件安装完,需要重启 idea 才能生效。

3、用 idea 打开项目,并启动

  • 用 idea 打开项目后,多执行几次 “Reload All Gradle Projects” 按钮。

  • 将 config 目录下的 log4j.properties 文件拷贝到 core/src/main/resources 目录下。

  • 修改 config/server.properties 文件,修改 log.dirs、zookeeper.connect 配置。

  • 配置 Application 启动类

  • 启动成功:

    五、命令测试

    # 创建topic
    .binwindowskafka-topics.bat --create --zookeeper 192.168.62.66:2181/kafka1 --replication-factor 1 --partitions 1 --topic test

    # 查看topic列表
    .binwindowskafka-topics.bat --list --zookeeper 192.168.62.66:2181/kafka1

    六、可能遇到的错误集锦

    1、Failed to apply plugin [id ‘org.scoverage’]

    解决办法:

    2、有的 jar 包找不到

    解决办法:

    C:Usersxxx.gradle目录删掉,重新加载项目,重新生成。

    3、运行时乱码

    如果还不行,可参考:
    https://cloud.tencent.com/developer/article/1795283

    4、Failed to load class “
    org.slf4j.impl.StaticLoggerBinder”.

    解决办法:

    在 build.gradle 文件中添加相关依赖(大约在594行):

    project(':core') {
    println "Building project 'core' with Scala version ${versions.scala}"

    apply plugin: 'scala'
    apply plugin: "org.scoverage"
    archivesBaseName = "kafka_${versions.baseScala}"

    dependencies {
    ...(省略)
    // 添加以下两个依赖
    // https://mvnrepository.com/artifact/org.slf4j/slf4j-api
    compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.25'
    // https://mvnrepository.com/artifact/org.slf4j/slf4j-log4j12
    compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.25'
    }

    解决。

    5、错误: 找不到或无法加载主类 kafka.admin.TopicCommand

    执行 .binwindowskafka-topics.bat 会 kafka.admin.TopicCommand 错误。

    不知道为什么,执行了一下 core 模块的 gradle build,虽然命令失败了,但是又试了试 .binwindowskafka-topics.bat 发现执行正常了。

    七、总结

    以上就是构建 Kafka 源码环境的所有步骤了。只有搭建好了 Kafka 的源码编译环境,你才能更方便地 debug 某一功能,梳理其中逻辑。

    ———- END ———-

    分享一下我对 ambari 二次开发的一些理解~

    Kafka的幂等性是什么意思,如何实现呢?

    Kafka精进 | Producer端核心参数及调优建议

    悄悄掌握 Kafka 常用命令,再也不用全 搜索了(建议收藏)

    解惑 | kafka集群三节点下,挂掉一个节点,为什么消费者消费不到数据了

    kafka 如何对 topic 分区 replica leader 进行负载均衡

    必会 | 教你如何重新分布kafka分区、增加分区副本数

    最后说一句(求关注,别白嫖我)

    扫一扫,我们的故事就开始了。

    动动小手,让更多需要的人看到~

    声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!

    (0)
    上一篇 2021年10月14日
    下一篇 2021年10月14日

    相关推荐