附录:kafka源码启动

本文以源码2.8为例

准备如下

  • idea 2019.1.4

  • jdk 1.8

  • scala 2.12.8

  • gradle 6.8.1

  • zookeeper 3.4.10

  • kafka2.8源码

注意:以下安装都需要装在没有空格的路径上,比如D:\Program Files (x86) 就带空格,是不行的

idea 2019.1.4 安装

  • 地址如下:https://www.jetbrains.com.cn/en-us/idea/download/other.html

  • 选择如下版本下载
    图一

  • 安装就按常规的选下一步即可,安装之后需要再添加scala及gradle的插件,如下图
    图二图三

scala 2.12.8 安装

  • 地址如下:https://www.scala-lang.org/download/2.12.8.html

  • 选择如下文件下载
    图四

  • 安装就按常规的选下一步即可,安装之后还需要设置环境变量,如下图:
    图五

  • 安装成功后验证是否成功:scala -version
    图六

gradle 6.8.1 安装

  • 地址如下:https://services.gradle.org/distributions/

  • 选择如下文件下载:
    图七

  • 不用安装,直接解压缩,安装之后还需要设置环境变量,如下图
    GRADLE_HOME D:\programFiles\gradle\gradle-6.8.1-bin\gradle-6.8.1
    %GRADLE_HOME%\bin
    图八

图九

  • 安装之后验证是否成功:gradle -v
    图十

zookeeper 3.4.10 安装

  • 地址如下:https://archive.apache.org/dist/zookeeper/

  • 选择如下文件下载:
    图十一

  • 不用安装,直接解压缩

  • 这里示例集群的方式搭建zk
    1、/conf 目录下复制三个zoo_sample.cfg,分别命名zoo.cfg、zoo2.cfg、zoo3.cfg
    修改zoo.cfg如下:

dataDir=/tmp/zookeeper/data1
clientPort=2181
server.1=127.0.0.1:2280:2281
server.2=127.0.0.1:2380:2381
server.3=127.0.0.1:2480:2481

修改zoo2.cfg如下:

dataDir=/tmp/zookeeper/data2
clientPort=2182
server.1=127.0.0.1:2280:2281
server.2=127.0.0.1:2380:2381
server.3=127.0.0.1:2480:2481

修改zoo3.cfg如下:

dataDir=/tmp/zookeeper/data3
clientPort=2183
server.1=127.0.0.1:2280:2281
server.2=127.0.0.1:2380:2381
server.3=127.0.0.1:2480:2481

2、/bin目录下复制两个zkEnv.cmd,分别命名zkEnv2.cmd、zkEnv3.cmd
修改zkEnv.cmd如下:

set ZOOCFG=%ZOOCFGDIR%\zoo.cfg

修改zkEnv2.cmd如下:

set ZOOCFG=%ZOOCFGDIR%\zoo2.cfg

修改zkEnv3.cmd如下:

set ZOOCFG=%ZOOCFGDIR%\zoo3.cfg

3、/bin目录下复制两个zkServer.cmd,分别命名zkServer2.cmd、zkServer3.cmd
修改zkServer.cmd如下:

call “%~dp0zkEnv.cmd”

修改zkServer2.cmd如下:

call “%~dp0zkEnv2.cmd”

修改zkServer3.cmd如下:

call “%~dp0zkEnv3.cmd”

4、在第一步配置zoo.cfg时有配置dataDir,我们将三个节点的日志目录分别配置在了三个目录下,所以我们还需要在\tmp\zookeeper新建三个文件夹
分别命名为data1、data2、data3,然后在新建的目录下分别新建三个文件,命名为myid,文件中分别写入1,2,3
以data1为例

图十二
图十三

5、分别启动三个zkServer.cmd,无异常就说明集群启动成功

kafka2.8源码

  • 地址如下:- https://github.com/apache/kafka.git

  • 源码下载完成后切到2.8分支

  • 设置gradle路径以及jdk
    图十四

  • 修改gradle.properties中scala版本

scalaVersion=2.12.8

  • 修改build.gradle中的 mavenCentral(),jcenter()替换成如下maven路径

maven {
url ‘https://maven.aliyun.com/nexus/content/groups/public/’
}
maven {
url ‘https://maven.aliyun.com/nexus/content/repositories/jcenter’
}

  • 点击gradle开始导入项目
    图十五

    如下提示就说明导入成功
    图十六

  • 接着build项目,在这个过程中会根据部分json文件生成data文件
    图十七

  • 修改server.properties的zk配置

zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183

  • 添加kafka启动application
    图十八

  • 若提示代码编译失败,代码位置为org.apache.kafka.common.utils.ConfigUtils#translateDeprecatedConfigs(java.util.Map<java.lang.String,
    T>, java.lang.String[][]) ,则修改如下:

    public static <T> Map<String, T> translateDeprecatedConfigs(Map<String, T> configs, String[][] aliasGroups) {
        Map<String, List<String>> map  = Stream.of(aliasGroups)
                .collect(Collectors.toMap(x -> x[0],
                x -> Stream.of(x).skip(1).map(a->a.toString()).collect(Collectors.toList())));
        return translateDeprecatedConfigs(configs, map);
    }
  • 若启动失败,则添加如下配置

1、dependencies.gradle中slf4jlog4j的下面添加

slf4jSimple: “org.slf4j:slf4j-simple:$versions.slf4j”,

2、build.gradle中782行添加如下

compile libs.slf4jSimple
compile “com.alibaba:fastjson:1.2.66”

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小飞侠fly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值