Kafka/Kafka Stream源码阅读环境搭建

Redis源码阅读(二)- stream与radix树 详细介绍redis5.0新特性,stream常用操作命令及其实现原理,同时介绍radix树原理及redis中实现。 阅读详情

**源码环境说明:
OS:Ubuntu16.04.6,IDE:Intellij IDEA,JDK8,Scala 2.11.8,
**

安装JDK

  1. 添加仓库源
    sudo add-apt-repository ppa:webupd8team/java
  2. 更新软件包列表
    sudo apt-get update
  3. 安装JDK
    sudo apt-get install oracle-java8-installer
  4. 接下来接受协议(Yes选项),然后就可以了
  5. 验证JDK是否安装成功
    java -version
  6. 最后的结果:
    JDK安装结果图

下载并安装Gradle

  1. 下载Gradle安装包
    wget https://downloads.gradle.org/distributions/gradle-4.10.2-bin.zip
  2. 解压Gradle压缩包
    unzip gradle-4.10.2-bin.zip
  3. 配置环境变量
    sudo vim /etc/profile
  4. 向/etc/profile文件中添加以下内容:
    export GRADLE_HOME=/soft/grandle_4_10_2
    export PATH=$GRADLE_HOME/bin:$PATH
  5. 保存退出,并执行如下命令使配置生效
    source /etc/profile

下载并安装Scala

  1. 从http://www.scala-lang.org/download/all.html中下载scala 2.11.8
  2. 解压,修改 /etc/profile 配置环境变量,然后执行 source命令使配置生效
  3. 结果如下图:
    下载的文件以及解压包(修改了解压包的名称)
    /etc/profile添加的内容
    Scala 安装结果

下载Kafka并构建源码环境

  1. 从http://kafka.apache.org/downloads下载Kafka源码,这里下载的是2.1.1
  2. 解压Kafka源码,并修改一些文件的内容
    2.1 修改kafka-2.1.1-src/gradle.properties文件,将ScalaVersion该为你安装的版本,这里是2.11.8
    在这里插入图片描述
    2.2 修改kafka-2.1.1-src/gradle/dependencies.gradle,将其中的def defaultScala211Version修改为2.11.8
  3. 编译kafka源码,进入kafka-2.1.1-src文件夹下,然后执行如下命令:
    gradle idea
    注意:如果IDE是eclipse的话应该执行gradle eclipse,这里IDE为Intellij IDEA
  4. 然后将kafka源码导入到Intellij IDEA中,导入的时候可以选择导入的是Gradle工程,接下来需要对IDEA做一些设置
    4.1 在IDEA中安装Scala插件,进入IDEA然后点击File->Settings->Plugins,然后选择Scala进行安装
    IDEA安装Scala插件
  5. 下面是为运行源码做一些配置
    5.1 修改kafka-2.1.1-src/config下的server.properties中的log.dir配置log存放位置
    配置Kafka Log存放位置
    5.2 将kafka-2.1.1-src/config中的log4j.properties拷贝到你要运行的代码的位置,记得代码要有Main函数
  6. 下面的示例是运行kafka-2.1.1-src/streams/example中的WordCountDemo,配置过程如下:
    6.1 将config文件夹下的log4j.properties拷贝到resources文件夹下,没有该文件夹就自己创建一个,如下图:
    拷贝log4j.properties
    6.2 添加运行代码的配置,如下图,先点击Edit Configurations…
    在这里插入图片描述
    6.3 配置 Configurations,依次点击’+’->Application,接下来填写如下图(Name可以不同):
    填写Configuration
    6.4 到这里不一定能跑起来这个示例,可以下载Kafka,按照如下过程进行配置:https://kafka.apache.org/22/documentation/streams/quickstart
    当然你也需要配置你下载的kafka中的server.properties和zookeeper.properties还有log4j.properties文件,接下来按照上面的链接 从Step1一直到Step3结束,然后操作Step4中的下面2步,Step4中的第1步不要操作:
    在这里插入图片描述
    接下来,然后启动在IDEA中配置的WordCountDemo,点击Run或者Debug,整个结果如下图:
    Kafka Stream示例结果
  7. 最后就可以调试代码,阅读源码了。
  8. 如果出现Failed to load class "org.slf4j.impl.StaticLoggerBinder,可以参考我的References中的第3篇博客或者其他博客。

References:
[1]:https://blog.youkuaiyun.com/u012707739/article/details/78489833
[2]: https://kafka.apache.org/22/documentation/streams/quickstart#quickstart_streams_prepare
[3]: https://www.cnblogs.com/lenmom/p/10359315.html

java8stream源码-pangolin:穿山甲 java8流源码穿山甲 分支 地位 掌握 用于 GPU 图形操作的仅标头 C++/CUDA 库。 . 入门 安装 CUDA 大多数穿山甲只适用于nvcc 。 安装 NUMA(可选) sudo apt install libnuma-dev 在您的代码中包含穿山甲头文件,并在使用穿山甲之前的某处调用pangolin::init() # include " pangolin.hpp " # include " pangolin.cuh " int main ( int argc, char **argv) { pangolin::init (); // your code here. } 测试 mkdir -p build && cd build make make test 图书馆特色 GPU 图形算法 三角形计数 Anjur-Iyer:由 Anjur 和 Iyer 在 ECE 508 中创建的三角形计数算法。 Bisson-Fatica 2019:来自 Bisson & Fatica 的三角形计数算法 Edge-Binary:具有二分查找交集的面向边计数 Edge-Dyn:面向边缘的计 立即下载

相关推荐

STM32H743内存告急?手把手教你用CubeMX+FMC外扩32MB SDRAM(W9825G6KH-6)

本文详细介绍了如何在STM32H743上使用CubeMX和FMC外扩32MB SDRAM(W9825G6KH-6),解决内存不足问题。从硬件选型、CubeMX配置到初始化代码实现,提供完整的配置教程和性能优化技巧,帮助开发者高效扩展内存,适用于图形界面和复杂算法处理。

weixin_30568591的博客 493

Linux下stream内存带宽测试参数和示例详解附源码(总结)

本文通过实例详细讲解各编译参数,方便读者快速掌握。stream是一套综合性能测试程序集,通过fortran和c两种高级且高效的语言编写完成,由于这两种语言在数学计算方面的高效率, 使得stream测试例程可以充分发挥出内存的能力。stream测试得到的是可持续运行的内存带宽最大值,而并不是一般的硬件厂商提供的理论最大值,具有如下特点: 1.主要有四种数组的运算,测试到内存带宽的性能分别是:数组的复制(Copy)、数组的尺度变换(Scale)、数组的矢量求和(Add)、数组的复合矢量求和(Triad)。 2.

Luckiers的博客 1万+

VCSA 上的 vmware-vpxd 服务失败,Web端提示503 服务不可用 (503 Service Unavailable)

昨晚VCSA碰到一个很诡异的问题: 使用 vSphere Web Client 连接到 vCenter Server Appliance时失败,提示: 503 服务不可用 (503 Service Unavailable) 无法连接端点 (Failed to connect to endpoint):[N7Vmacore4Http20NamedPipeServiceSpecE:0x00007f975808ee30] _serverNamespace = / action = Allow _pipeNam

徐华的博客 2万+

Stream流式操作(附源码)

Stream流式操作,中间操作.终止操作(附源码)

create_bj的博客 458

Kaggle时间序列竞赛金牌方案解析与实战指南

本文深度解析了Kaggle时间序列竞赛的金牌方案,揭示了其成功不仅依赖先进模型,更在于系统工程思维。文章系统阐述了从数据理解、特征工程到模型集成与后处理的全流程,并重点剖析了分层建模、自定义损失函数、时序交叉验证等核心技巧,为参赛者提供了从理论到实战的完整指南。

weixin_29196315的博客 355

python解析通达信dat与blk数据文件【附源码】

本文介绍了一个完整的通达信金融数据解析器项目,该项目攻克了通达信专有二进制文件格式解析的技术难题。项目采用模块化架构,从基础二进制解析到增强数据分类,最终实现智能语义化列名生成,形成完整的数据处理链路。核心技术包括自适应编码检测、智能数据类型推断和基于业务规则的语义化处理,解决了逆向工程、多编码兼容性等挑战。项目成果显著,解析成功率达100%,数据可读性大幅提升,开发效率提高50%,为量化交易、可视化分析等场景提供了可靠数据支持。该方案不仅具备技术创新性,更具有实际工程应用价值,为金融数据分析领域提供了可复

qq_36224726的博客 2688

streamx源码编译及安装部署-本地编译(推荐)

锚定既定奋斗目标,意气风发走向未来。——人民日报 在服务器端进行了streamx编译的那文章也说了,我没有flink,hadoop 的配置,所以我重新进行了streamx的源码编译,版本依旧是streamx-1.2.0 稳定版本 现在编译的是Flink版本为1.14.3 , hadoop版本为3.1.3. 源码编译的前提条件 我使用的是maven 3.8.3版本. node js , jdk1.8.3 ,npm. streamx源码编译 从官网下载streamx稳定版本 官网地址: https://

上白书妖 2912

平行趋势检验没通过怎么办?别慌,试试三重差分DDD与事件研究法

本文探讨了当平行趋势检验未通过时,如何运用三重差分法(DDD)与事件研究法进行政策评估。通过Stata代码示例和实战案例,详细介绍了DDD的原理、适用场景及实现步骤,并提供了替代方案如合成控制法和匹配DID,帮助研究者获得更准确的因果推断结果。

weixin_28732953的博客 609

走近Kafka之源码阅读环境的构建

走近Kafka之源码阅读环境的构建 以2.4版本代码分支为例 以kafka官方文档为参考 构建准备: [Ubuntu 18 安装] Linux衍生系统 [Java 1.8+ 版本安装] Java环境 [Gradle 5.6.4 版本安装] Kafka源代码编译构建工具 [Git安装] 代码管理 [zookeeper 安装] kafka集群构建/调试使用 [Scala 2.12.10 ...

AIzone的博客 174

Remote ID的调制解调FPGA实现

Remote ID源于航空安全需求,例如在无人机密集区域实现设备跟踪和防碰撞。它类似于航空领域的ADS-B系统,但针对低空飞行器。Remote ID系统通常工作在特定频段(如2.4 GHz或5.8 GHz),通过无线链路广播数据包,包含设备ID、经纬度、高度和速度等信息。调制解调过程确保这些数据在噪声环境中可靠传输。例如,标准如ASTM F3411定义了Remote ID的协议框架,其中调制解调是关键物理层组件。

yulongfenghu的博客 1506

TPS563201DDCR电路翻车实录:从原理图到PCB,我踩过的5个坑及补救方法

本文详细记录了使用TPS563201DDCR电源芯片设计电路时遇到的5个常见问题及解决方案,包括EN引脚配置、BST电容选型、反馈网络设计、PCB布局优化以及散热处理。通过实际案例和数据分析,帮助工程师避免类似错误,提升电源模块的可靠性和效率。

weixin_42532938的博客 528

kafka源码阅读-Topic创建流程

Kafka源码包含多个模块,每个模块负责不同的功能。服务端源码:实现Kafka Broker的核心功能,包括日志存储、控制器、协调器、元数据管理及状态机管理、延迟机制、消费者组管理、高并发网络架构模型实现等。Java客户端源码:实现了Producer和Consumer与Broker的交互机制,以及通用组件支撑代码。Connect源码:用来构建异构数据双向流式同步服务。Stream源码:用来实现实时流处理相关功能。Raft源码:实现了Raft一致性协议。Admin模块。

mhHao的博客 830

Android 13 wificond讲解

Android 13 wificond讲解

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 2932

kafka源码阅读-ReplicaManager解析

Kafka源码包含多个模块,每个模块负责不同的功能。服务端源码:实现Kafka Broker的核心功能,包括日志存储、控制器、协调器、元数据管理及状态机管理、延迟机制、消费者组管理、高并发网络架构模型实现等。Java客户端源码:实现了Producer和Consumer与Broker的交互机制,以及通用组件支撑代码。Connect源码:用来构建异构数据双向流式同步服务。Stream源码:用来实现实时流处理相关功能。Raft源码:实现了Raft一致性协议。Admin模块。

mhHao的博客 1323

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

kafka源码阅读-日志管理器

Kafka源码包含多个模块,每个模块负责不同的功能。服务端源码:实现Kafka Broker的核心功能,包括日志存储、控制器、协调器、元数据管理及状态机管理、延迟机制、消费者组管理、高并发网络架构模型实现等。Java客户端源码:实现了Producer和Consumer与Broker的交互机制,以及通用组件支撑代码。Connect源码:用来构建异构数据双向流式同步服务。Stream源码:用来实现实时流处理相关功能。Raft源码:实现了Raft一致性协议。Admin模块。

mhHao的博客 1014

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

阅读源码,成为职业进阶道路上的“必选项”了吗?

得源码者,得天下一.为什么要读源码?二.为什么读源码逐渐成为了必选项?它究竟有什么作用呢?三.如何用最短的时间掌握最核心的源码?四.具体怎么做呢?五. Kafka 的源码全景图,找到核心的源码 一.为什么要读源码? 很多棘手的问题都要借助源码才能解决,因为底层解释的更详细准确。 很多互联网公司资深技术岗位的招聘要求上,“读过至少一种开源框架的源码”赫然在列。这也就意味着,阅读源码正在从“加分项”向“必选项”转变,掌握优秀的框架代码实现从 NICE-TO-DO 变成了 MUST-DO。 二.为什么读源码逐

知其然,知其所以然 373

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

kafka源码阅读-Broker如何处理consumer消费、follower副本数据同步请求

Kafka源码包含多个模块,每个模块负责不同的功能。服务端源码:实现Kafka Broker的核心功能,包括日志存储、控制器、协调器、元数据管理及状态机管理、延迟机制、消费者组管理、高并发网络架构模型实现等。Java客户端源码:实现了Producer和Consumer与Broker的交互机制,以及通用组件支撑代码。Connect源码:用来构建异构数据双向流式同步服务。Stream源码:用来实现实时流处理相关功能。Raft源码:实现了Raft一致性协议。Admin模块。

mhHao的博客 1165

tech| kafka入门书籍导读

  J梳理了一下自己在入门 kafka 时读过的一些书, 希望能帮助到对 kafka 感兴趣的小伙伴.   涉及到的书籍:   kafka 权威指南   Kafka: The Definitive Guide (kafka 权威指南的英文原版)   Kafka入门与实践   kafka技术内幕   推荐的书籍阅读顺序:   优先阅读 「kafka 权威指南」, 基于 kafka ...

qianfeng_dashuju的博客 864

Spark-stream基础---sparkStreaming和Kafka整合wordCount单词计数

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。//2.接入kafka数据源(如何访问kafka集群?//1.创建StreamingContext。//1.先打开zookeeper(3台)//2.在打开kafka(3台)//4.控制台输入任意单词。//创建Dstream。

2401_84138927的博客 853

关于Spark Streaming感知kafka动态分区的问题

本文主要是讲解Spark Streaming与kafka结合的新增分区检测的问题。读本文前关于kafka与Spark Streaming结合问题请参考下面两篇文章:1,必...

大数据星球-浪尖 4116

Spark-stream基础---sparkStreaming和Kafka整合wordCount单词计数(1)

① 2000多本Python电子书(主流和经典的书籍应该都有了)② Python标准库资料(最全中文版)③ 项目源码(四五十个有趣且经典的练手项目及源码)④ Python基础入门、爬虫、web开发、大数据分析方面的视频(适合小白学习)⑤ Python学习路线图(告别不入流的学习)/*需求:kafka消费数据到sparkStreaming计算*///1.创建StreamingContext//2.接入kafka数据源(如何访问kafka集群?zookeeper)//访问组//访问主题。

2401_84138927的博客 655

前传(1):Kafka 的前生今世

不错的文章,转发下 Kafka只是消息引擎系统吗? 要搞清楚这个问题,我们不可避免地要了解一下 Apache Kafka 的发展历程。有的时候我们会觉得说了解一个系统或框架的前世今生似乎没什么必要,直接开始学具体的技术不是更快更好吗? 其实,不论是学习哪种技术,直接扎到具体的细节中,亦或是从一个很小的点开始学习,你很快就会感到厌烦。为什么呢?因为你虽然快速地搞定了某个技术细节,但无法建立全局的认知观,这会导致你只是在单个的点上有所进展,却没法将其串联成一条线进而扩展成一个面,从而实现系统地学习。 我这么.

water Wang 712

Spring Cloud 学习纪要六:Stream

Spring Cloud Stream:消息驱动   Spring Cloud Stream 是一个构建消息驱动微服务的框架,应用程序通过 input 或者 output 来与 Spring Cloud Stream 中 binder 交互,而 binder 负责与消息中间件交互。 开发环境 版本 IDEA 2018.2.6 JDK 1.8 Spring Boot 2.0....

博学de叫兽 1万+
上一篇: Linux中计算特定CPU使用率
下一篇: fopen以write方式打开文件失败
ibless
博客等级 码龄9年 66粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值