ScalaFlink介绍Flink源码主要是Java语言编写的, 开发中首选Java开发Flink如果考虑到编码效率和简洁性可以考虑使用Scala注意:Spark源码主要是Scala编写的, 开发中首选Scala开发Spark如果考虑到编码的规范性,可以考虑使用Java环境0.导入依赖<!--依赖Scala语言--> <dependency>
转载 2023-07-11 17:09:07
76阅读
序言经过一段时间对于flink学习且画了一些源码流程相关的图,决定开一个flink源码分析的专栏,该专栏以flink on yarn的 Per-job模式为基础,基于flink1.12.0,以官方SocketWindowWordCount例子来分析一个任务从提交到运行的流程源码分析。那么话不多,直接开始吧。首先我们正常情况下,在该模式下的提交flink任务的脚本入下:flink run -t ya
本系列是针对 Flink 源码进行的一系列探究过程,旨在通过 Flink 源码全面地、详细地了解 Flink 原理写过 Flink 程序的朋友都知道,Flink 程序的第一行代码就是创建可执行环境,如下:final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();根据 get
转载 2024-04-12 15:48:10
100阅读
概述      本章我首先从介绍Flink的定义展开全书首秀,希望各位读者能有耐心看下去。接着通过详细讲述Flink定义延伸出其从多优秀特点。然后再这些特点出发,自然引出Flink优势和应用领域的相关内容。Flink定义Flink是一个开源的基于流式数据处理的计算框架,它可以实现对无限数据流进行实时处理,同时也支持对有限的批量数据进行处理。Flink采用了基于流的数据
转载 2024-06-05 14:13:59
47阅读
本文大纲 一、Flink 官方文档这么全面,为什么还要读 Flink 源码读文档和读源码的目的是不一样的,就拿 Apache Flink 这个项目来说,如果你想知道 Flink 的使用功能,设计思想,实现原理,看官方文档就足够了;如果你想了解的就是具体细节,比如说 StreamGraph 是怎么生成的或者是 Exactly Once 究竟如何实现的,那么就需要去阅读源码了。关键是看你的目的是什么
转载 2024-05-09 12:36:48
23阅读
最近准备开始看spark源码,第一步当然是要搭建一个舒适的spark源码阅读环境,通过单步调试才能顺藤摸瓜的理清具体脉络,有助与提高阅读效率。在搭建环境过程中,遇到一些奇怪的错误,但居然都鬼使神差的搞定了,人品啊,哈哈哈Spark源码使用scala语言编写的,说到scala的IDE工具,首选当然是idea,idea安装scala插件我这里就详说了,除了idea外,我们还需要安装的软件有:mave
转载 2023-08-07 01:25:05
104阅读
本篇先介绍流中的数据,再通过一个完整的案例,介绍流处理应用中的几个重要组成部分。流里面是什么Flink的DataStream API可以基于Java或Scala编写,流内部支持很多种类型,比如Java的基础类型,如String、Long、Integer、Boolean、Array等;也支持复杂类型,如Tuples、POJOS、Scala Case class等。也支持使用Kryo或Avro进行序列
为什么要编译Flink源码根据flink官方文档,flink在1.8以后就不提供on hadoop的二进制包了,所以如果需要部署flink on yarn,官方虽然不支持了,但是提供了重新编译on hadoop的flink的二进制安装包的方法,首先我们来梳理一下编译思路。(P.S.:这篇blog主要说的是maven编译flink的操作步骤):准备摘自 Project Template for Ja
转载 2024-08-09 14:05:58
29阅读
前言之前,一直在考虑,如何延续职业生涯.虽然刚入职,但是危机意识告诉我,不能当咸鱼.拒绝996的同时,也要自我学习,才不至于早早被扫地出门.哪怕考公务员也要学习[手动吃瓜]. 受到我们部门leader的启发,我决定深入探讨一个工具,钻研源码,做到"精通"一个工具. 由Spark始吧. 本系列,主要参考了耿嘉安的深入理解Spark核心思想与源码分析.可以理解成我照猫画虎,更新了自己的一版本吧. 就从
转载 2024-02-29 16:57:49
67阅读
Spark源码系列(二) Dependency&ReduceBykey源码 文章目录Spark源码系列(二) Dependency&ReduceBykey源码DependencyShuffleDependency 在Spark源码系列(一)RDD的文章中,主要提到了RDD的由来、原理以及主要的Transformation&Action算子。其中依赖和reduceBykey
转载 2023-10-05 16:09:56
58阅读
Spark源码梳理一、程序的起点spark-submit --class com.sjh.example.SparkPi --master local[*] …/demo.jar在windows下调用spark-submit.cmd在linux下调用spark-submit脚本脚本调用顺序:1、spark-submit2、 spark-submit2.cmdspark-class2.cmd org
转载 2023-10-05 16:42:41
123阅读
Spark Shuffle 源码在划分stage时,最后一个stage称为finalStage,它本质上是一个ResultStage对象,前面的所有stage被称为ShuffleMapStage。 ShuffleMapStage的结束伴随着shuffle文件的写磁盘。 ResultStage基本上对应代码中的action算子,即将一个函数应用在RDD的各个partition的数据集上,意味着一个j
转载 2024-08-16 13:35:51
35阅读
前言:spark源码分析系列 ,文中有错误的地方 请多多指正。体系架构如下,可以看出spark是一个全兼容的生态圈,不一定是最好的,但是是最全面的,一个spark生态圈就可以解决绝大多数数的大数据问题。一、spark基本概念1.Application:就是一个程序,一个jar包,一个war包,也就是通过spark-submit提交的程序2.Driver:就是为这个应用所提供的运行环境,上
在学习spark的过程中发现很多博客对概念和原理的讲解存在矛盾或者理解不透彻,所以开始对照源码学习,发现根据概念总结去寻找对应源码,能更好理解,但随之而来的问题是好多源码看不懂,只跑example的话好多地方跑不到,但是结合测试类理解起来就方便多了。fork一份源码,在未修改源码的情况下(修改源码后,比如加注释等,在编译阶段容易报错),使用gitbash进入项目的根目录下,执行下面2条命令使用mv
转载 2024-08-27 09:44:22
99阅读
Background在MapReduce框架中,shuffle是连接Map和Reduce之间的桥梁,Map的输出要用到Reduce中必须经过shuffle这个环节,shuffle的性能高低直接影响了整个程序的性能和吞吐量。Spark作为MapReduce框架的一种实现,自然也实现了shuffle的逻辑,本文就深入研究Spark的shuffle是如何实现的,有什么优缺点,与Hadoop MapRed
转载 2023-12-08 08:23:02
27阅读
RDD之getNarrowAncestors内部方法分析最近开始spark源码攻关,其实看源码一直是我最怕的东西,因为太多、太杂、太深导致不能够很好的把我脉络导致每次最后都放弃。有人跟我说看源码可以阶段性一个方法一个方法的去学习,去看,每天积累一点总会成功,那么今天开始我的第一天spark源码分析。我这里从spark最基本的RDD中的方法说起,我感觉这样会更容易一些。同时我只对其中感觉比较重要的
转载 2023-08-31 23:52:51
78阅读
ReduceBykey&GroupByKey 文章目录ReduceBykey&GroupByKeygroupByKey源码reduceBykey与groupByKey对比 groupByKey源码上一篇文章中讲到了reduceBykey的源码。还有个比较常见的算子是groupByKey,源码如下:/** * Group the values for each key in the
转载 2023-12-26 14:34:19
41阅读
Spark中针对键值对类型的RDD做各种操作比较常用的两个方法就是ReduceByKey与GroupByKey方法,下面从源码里面看看ReduceByKey与GroupByKey方法的使用以及内部逻辑。官方源码解释:三种形式的reduceByKey总体来说下面三种形式的方法备注大意为: 根据用户传入的函数来对(K,V)中每个K对应的所有values做merge操作(具体的操作类型根据用户定义的函
转载 2023-09-04 13:43:06
64阅读
Spark Shuffle 源码剖析概念理论铺垫一、 Spark 分区数量由谁决定Spark source 如果是TextFile() 读取HDFS中的文件,2参数,第一个参数是路径,第二个是指定分区数量如果指定分区数量,0或1,则分区数量的多少取决于文件数量的多少如果没有指定分区数量,默认则是2,如果文件总大小为100m,100/2(分区数量)=50,50为goalSize,如果50会和Hdfs
转载 2023-11-29 09:06:15
97阅读
从两方面来阐述spark的组件,一个是宏观上,一个是微观上。1. spark组件要分析spark源码,首先要了解spark是如何工作的。spark的组件:了解其工作过程先要了解基本概念官方罗列了一些概念:TermMeaningApplicationUser program built on Spark. Consists of a driver program and&nbs
转载 2023-07-11 20:05:03
93阅读
  • 1
  • 2
  • 3
  • 4
  • 5