Kafka源码系列(一)——源码环境搭建

本文详细介绍了在MAC操作系统上搭建Kafka 2.8.1源码环境的过程,包括Java、Scala、Gradle的安装与验证,Zookeeper的安装,以及Kafka的下载、配置和启动。特别强调了Scala 2.13.6的环境配置,以及在IDEA中使用Gradle构建Kafka项目。

这里使用的Kafka版本是2.8.1,差不多是最新的2.X.X版本,2021.9.21已经出了最新的3.0.0版本,该版本移除了Java 8以及Scala 2.12,在环境配置上有所不同,后续有时间会更新最新的3.0.0环境搭建内容。

操作系统:MAC

1. Java 设置

JDK版本是1.8,这里就不描述具体的操作步骤。

ljc:~ luojiacheng$ java -version
java version "1.8.0_221"
Java(TM) SE Runtime Environment (build 1.8.0_221-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.221-b11, mixed mode)

2. 安装Scala

2.1 下载

下载地址:https://www.scala-lang.org/download/scala2.html

这里下载的是2.13.6版本
在这里插入图片描述

2.2 环境配置

编辑环境配置文件:

> sudo vi /etc/profile

插入以下内容:

export SCALE_HOME=/Users/luojiacheng/tool/scale/scala-2.13.6
export PATH=$PATH:$SCALE_HOME/bin

更新环境:

> source /etc/profile
2.3 验证

出现如下结果表示成功

ljc:~ luojiacheng$ scala -version
Scala code runner version 2.13.6 -- Copyright 2002-2021, LAMP/EPFL and Lightbend, Inc.
3. 安装Gradle
3.1 下载

下载地址:https://gradle.org/releases/

在这里插入图片描述

3.2 环境配置

编辑环境配置文件:

> sudo vi /etc/profile

插入以下内容:

export GRADLE_HOME=/Users/luojiacheng/gradle-6.8.1
export PATH=$PATH:$GRADLE_HOME/bin

更新环境:

> source /etc/profile
3.3 验证

出现如下结果表示成功

ljc:~ luojiacheng$ gradle -version

------------------------------------------------------------
Gradle 6.8.1
------------------------------------------------------------

Build time:   2021-01-22 13:20:08 UTC
Revision:     31f14a87d93945024ab7a78de84102a3400fa5b2

Kotlin:       1.4.20
Groovy:       2.5.12
Ant:          Apache Ant(TM) version 1.10.9 compiled on September 27 2020
JVM:          1.8.0_221 (Oracle Corporation 25.221-b11)
OS:           Mac OS X 10.16 x86_64

4. 安装Zookeeper

Kafka2版本还是需要依赖Zookeeper的,所以还需要安装Zookeeper。

4.1 下载(brew)
> brew install zookeeper
4.2 启动
ljc:~ luojiacheng$ zkServer start
ZooKeeper JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Starting zookeeper ... STARTED
4.3 停止
ljc:~ luojiacheng$ zkServer stop
ZooKeeper JMX enabled by default
Using config: /usr/local/etc/zookeeper/zoo.cfg
Stopping zookeeper ... STOPPED

5. Kafka

5.1 下载

下载地址:https://kafka.apache.org/downloads

在这里插入图片描述

5.2 gradle idea

解压在工程目录下执行gradle idea,出现下图表示成功。

在这里插入图片描述

5.3 IDEA 打开
5.4 执行jar

在Idea中点击Gradle下jar命令。

在这里插入图片描述

6. 启动本地Kafka

6.1 添加log4j依赖

在core依赖中添加如下部分。

	compile group: 'log4j', name: 'log4j', version: '1.2.17'
    compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.30'
    compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.30'
project(':core') {
  println "Building project 'core' with Scala version ${versions.scala}"

  apply plugin: 'scala'
  
  // scaladoc generation is configured at the sub-module level with an artifacts
  // block (cf. see streams-scala). If scaladoc generation is invoked explicitly
  // for the `core` module, this ensures the generated jar doesn't include scaladoc
  // files since the `core` module doesn't include public APIs.
  scaladoc {
    enabled = false
  }
  if (userEnableTestCoverage)
    apply plugin: "org.scoverage"
  archivesBaseName = "kafka_${versions.baseScala}"

  dependencies {
    compile project(':clients')
    ...
    compile libs.slf4jApi
    compile(libs.zookeeper) {
      exclude module: 'slf4j-log4j12'
      exclude module: 'log4j'
    }
    // ZooKeeperMain depends on commons-cli but declares the dependency as `provided`
    compile libs.commonsCli

    compileOnly libs.log4j
    compile group: 'log4j', name: 'log4j', version: '1.2.17'
    compile group: 'org.slf4j', name: 'slf4j-api', version: '1.7.30'
    compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.30'

		...
  }
6.2 修改配置文件
  1. config/log4j.properties文件复制到core/src/main/resources/目录下;
  2. 修改config/server.properties中的log.dirs为自定义日志目录。
log.dirs=/Users/luojiacheng/ljc_code/kafka-resource/kafka-2.8.1-src/kafka-logs
6.3 配置程序并启动

在这里插入图片描述

启动成功日志输出
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值