Kafka源码编译(kafka0.8.2.2)并用IDEA(2018.3)运行

2023-12-17 08:32

本文主要是介绍Kafka源码编译(kafka0.8.2.2)并用IDEA(2018.3)运行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一: 准备工作

       安装JDK(1.8或以上)、Scala(2.11.x)、Gradle

    可以参考博客 https://blog.csdn.net/u013256816/article/details/78533725

  本机安装如下:

二:下载kafka源码解压

三:在解压目录下执行gradle idea

四:编译成功

     产生如下三个文件:

五:如果编译失败,报错如下

gradle idea  
Starting a Gradle Daemon (subsequent builds will be faster)  
Building project 'core' with Scala version 2.10.4  FAILURE: Build failed with an exception.  * Where:  
Build file '/opt/bigdata/kafka/kafka-0.8.2.2-src/build.gradle' line: 230  * What went wrong:  
A problem occurred evaluating root project 'kafka-0.8.2.2-src'.  
> Failed to apply plugin [class 'org.gradle.api.plugins.scala.ScalaBasePlugin']  > No such property: useAnt for class: org.gradle.api.tasks.scala.ScalaCompileOptions  * Try:  
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.  BUILD FAILED  

       解决办法:

         在build.gradle文件中添加如下(=号前后最好不带空格):

ScalaCompileOptions.metaClass.daemonServer=true
ScalaCompileOptions.metaClass.fork=true
ScalaCompileOptions.metaClass.useAnt=false
ScalaCompileOptions.metaClass.useCompileDaemon=false

六:IDEA打开Kafka源码

      IDEA必选先装Scala插件(在setting/plugins下搜索安装,或离线安装)

     1.选择build.gradle文件打开

2.建立索引,点击导入

点击Import Gradle project之后,再次去掉对勾,点击OK

七:运行Kafka源码

       1.将config目录下的log4j.properties拷贝到core/src/main/scala目录下

如果拷贝到此目录仍启动仍无效,可在main下新建resources目录。将log4j.properties拷贝到resources下。

2.设置server.properties

   设置broker.id、port、log.dirs、zookeeper.connect

特别要说一下的是:log.dirs

由于是本地运行,kafka运行的log会在默认路径下,不方便查看,因此我设置了两个目录用于存储kafka运行过程中产生的两不同的日志

在server.properties中log.dirs设置appLog

在拷贝后的core/src/main/scala下的log4j.properties中添加:

kafka.logs.dir=F:\\linuxLocalRun\\kafka\\kafka_2.11-2.0.1\\log\\broker1\\runLog

3.配置Application

选择core/src/main/scala/kafka/Kafka.scala作为Main Class

八:启动zookeeper

双击zkServer.cmd   本地运行zookeeper

九:运行Kafka源码

启动成功。并成为Leaders

 

这篇关于Kafka源码编译(kafka0.8.2.2)并用IDEA(2018.3)运行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/503749

相关文章

如何用Docker运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

JAVA智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

搭建Kafka+zookeeper集群调度

前言 硬件环境 172.18.0.5        kafkazk1        Kafka+zookeeper                Kafka Broker集群 172.18.0.6        kafkazk2        Kafka+zookeeper                Kafka Broker集群 172.18.0.7        kafkazk3

AI hospital 论文Idea

一、Benchmarking Large Language Models on Communicative Medical Coaching: A Dataset and a Novel System论文地址含代码 大多数现有模型和工具主要迎合以患者为中心的服务。这项工作深入探讨了LLMs在提高医疗专业人员的沟通能力。目标是构建一个模拟实践环境,人类医生(即医学学习者)可以在其中与患者代理进行医学

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、

maven 编译构建可以执行的jar包

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~ 专栏导航 Python系列: Python面试题合集,剑指大厂Git系列: Git操作技巧GO

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用

Spring 源码解读:自定义实现Bean定义的注册与解析

引言 在Spring框架中,Bean的注册与解析是整个依赖注入流程的核心步骤。通过Bean定义,Spring容器知道如何创建、配置和管理每个Bean实例。本篇文章将通过实现一个简化版的Bean定义注册与解析机制,帮助你理解Spring框架背后的设计逻辑。我们还将对比Spring中的BeanDefinition和BeanDefinitionRegistry,以全面掌握Bean注册和解析的核心原理。