MacPro M1 搭建kafka2.8.0源码环境

1. 前言

机器版本:
在这里插入图片描述

其他环境:

  • Zulu JDK1.8
  • scala2.13.1
  • gradle6.8
  • zk3.6.3
  • zookeeper3.6.3

在MacBook搭建kafka源码环境,并通过IDEA运行源码这一过程遇到了许多的问题,通过此片博文记录下来供同行们参考。

2. 正文

2.1 安装Zulu JDK1.8

官网链接:https://www.azul.com/downloads/?version=java-8-lts&os=macos&architecture=arm-64-bit&package=jdk
进入官网选择对应版本、对应机器后选择下载即可,此处本人下载的是.tar.gz版的。
在这里插入图片描述
解压好了zulu JDK1.8之后,然后配置JDK1.8环境依赖。

  1. 在根目录新建一个./bash_basicfile
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:%JAVA_HOME/lib/tools.jar

export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
export PATH=${PATH}:${JAVA_HOME}
  1. 将./bash_basicfile配置添加进~/.zshrc中
source /Users/apple/.bash_basicfile

然后保存~/.zshrc配置,然后命令source ~/.zshrc,让zshrc生效配置。

  1. 测试Java环境是否安装成功。
    在这里插入图片描述
    在这里插入图片描述

2.2 安装scala2.13.1

下载地址:https://downloads.lightbend.com/scala/2.13.1/scala-2.13.1.tgz。下载成功之后解压到本地磁盘目录即可。
同样在~/.bash_basicfile配置文件中添加scala的配置,如下:

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:%JAVA_HOME/lib/tools.jar

export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
export MAVEN_HOME=/Users/apple/Documents/dev_software/apache-maven-3.8.6

export SCALA_HOME=/Users/apple/Documents/dev_software/scala-2.13.1
export PATH=${PATH}:${SCALA_HOME}/bin:${JAVA_HOME}:${MAVEN_HOME}/bin**加粗样式**

然后通过命令source ~/.zshrc,让zshrc生效配置,随后检查下scala是否生效。
在这里插入图片描述

2.3 安装gradle6.8

kafka的依赖管理是通过gradle来实现的,而kafka2.8.0这个版本用gradle6.8正合适,所以接下来下载gradle6.8:https://gradle.org/next-steps/?version=6.8&format=bin,随后直接解压到本地磁盘目录,然后再~/.bash_basicfile中配置gradle。

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:%JAVA_HOME/lib/tools.jar

export JAVA_HOME=/Library/Java/JavaVirtualMachines/zulu-8.jdk/Contents/Home
export MAVEN_HOME=/Users/apple/Documents/dev_software/apache-maven-3.8.6

export GRADLE_HOME=/Users/apple/Documents/dev_software/gradle-6.8
export SCALA_HOME=/Users/apple/Documents/dev_software/scala-2.13.1
export PATH=${PATH}:${GRADLE_HOME}/bin:${SCALA_HOME}/bin:${JAVA_HOME}:${MAVEN_HOME}/bin

同样地通过命令source ~/.zshrc,让zshrc生效配置,随后检查下gradle是否生效。
在这里插入图片描述

2.4 安装zk3.6.3

安装地址:https://www.apache.org/dyn/closer.lua/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz,安装好zk3.6.3之后,解压到本地磁盘目录,然后再zk目录的conf目录下,拷贝zoo_sample.cfg文件并重命名为zoo.cfg。

2.5 下载kafka2.8.0源码

下载kafka2.8.0源码

接下来开始搭建kafka2.8.0源码环境。首先去kafka的github仓库中拷贝git链接,通过命令:

git clone https://github.com/apache/kafka.git

接着切换到2.8.0分支。

git checkout -b 2.8 origin/2.8
下载kafka相关依赖

通过在kafka源码目录下执行gradle idea命令来下载kafka相关依赖。
在这里插入图片描述在这里插入图片描述

将kafka源码导入idea

将kafka源码导入idea之后结果如下图:
在这里插入图片描述
在运行源码之前还需要通过./gradlew jar来生成request和response类:

./gradlew jar

如果要对某一个具体的测试用例进行测试,比如LogTest类,可以通过下面的命令来测试:

./gradlew core:test --tests kafka.log.LogTest

2.6 源码调试

环境准备好了以后,可以开始着手准备源码调试。
首先得将kafka源码中conf目录下的log4j.proerties配置文件拷贝到src/main/scala目录下,如下图所示:
在这里插入图片描述
接着需要修改conf目录下server.properties配置,并修改其中的log.dir配置项。
在这里插入图片描述

启动zookeeper

进入zookeeper的bin目录,通过如下命令运行:

./zkServer.sh start
在IDEA中配置启动类

在IDEA中配置kafka.kafka这个入口类,配置如下图:
在这里插入图片描述
配置成功之后直接运行kafka.kafka类即可。

2.7 源码调试过程中遇到的问题

遇到问题1:

JDK安装成功,但是JAVA_HOME没有指定位置,用了MacOS自带的JDK6了,死活启动不了源码。同样的gradlew jar也报错。

检查指定的JAVA_HOME配置和IDEA中对应的配置保持一致。

遇到问题2:

ZooKeeper没启动,kafka.kafka源码一直启动不成功。

遇到问题3:

启动之后控制台日志一直报错,输出不了日志,通过翻墙查找到文章之后配置了gradle的配置解决。

https://medium.com/@chandreshpancholi007/how-to-setup-apache-kafka-source-code-on-intellij-b204966d7c2

分别在kafka/build.gradle以及kafka/gradle/dependencies.gradle中添加如下配置:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
zui在这里插入图片描述
最后还需要再IDEA启动类中配置vm.options,

-Dkafka.logs.dir=/Users/apple/Documents/git_code/kafka/kafka-logs -Dlog4j.configuration=file:config/log4j.properties

如下图:
在这里插入图片描述

遇到问题4:

错误: 找不到或无法加载主类 kafka.admin.TopicCommand,build core之后就行。

遇到问题5:

kafka.common.InconsistentClusterIdException: The Cluster ID iQOo-xz-TjKgi7L6M_TEoQ doesn’t match stored clusterId Some(3j3ydIppQqeEQx1Lh1Bf-g) in meta.properties. The broker is trying to join the wrong cluster. Configured zookeeper.connect may be wrong.
将kafka-logs/meta.properties中的cluster.id替换成iQOo-xz-TjKgi7L6M_TEoQ,然后重新启动kafka服务即可。

2.8 调试结果

在这里插入图片描述
在控制台中查看到started,即表示kafka的服务端启动成功。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值