源码
Flink源码分析视频集
- bilibili: https://space.bilibili.com/389781728/channel/detail?cid=57928
- youtub: https://www.youtube.com/watch?v=Yte40CsKitY&list=PLKt2LvPElMxVplfb2W2NBhAtaX76wUOOD
中文文档
- Flink 1.7中文文档(官网英文翻译过来) 在线版: http://flink.apachecn.org/docs/1.7-SNAPSHOT/#/README
- Flink 1.7中文文档(官网英文翻译过来) PDF版: https://github.com/opensourceteams/flink-maven-scala/blob/master/doc/flink-1.7-%E4%B8%AD%E6%96%87%E6%96%87%E6%A1%A3(%E5%AE%98%E7%BD%91%E8%8B%B1%E6%96%87%E7%BF%BB%E8%AF%91%E8%BF%87%E6%9D%A5).pdf
Flink 本地运行交互Shell
- start-scala-shell.sh local
- 参数说明: [local | remote | yarn]
benv.fromElements(1,2,3).map(i => i * i ).print
- 输出结果
1
4
9
运行 jar 到 Flink 集群
flink run -c com.opensourceteams.module.bigdata.flink.example.stream.worldcount.nc.SocketWindowWordCount ./flink-maven-scala-2-0.0.1.jar
创建flink java 项目
mvn archetype:generate \
-DarchetypeGroupId=org.apache.flink \
-DarchetypeArtifactId=flink-quickstart-java \
-DarchetypeVersion=1.7.1
-DgroupId=com.opensourceteams \
-DartifactId=flink-maven-java \
-Dversion=0.0.1 \
-Dpackage=com.opensourceteams.module.bigdata.flink \
-DinteractiveMode=false
创建flink scala项目
mvn archetype:generate \
-DarchetypeGroupId=org.apache.flink \
-DarchetypeArtifactId=flink-quickstart-scala \
-DarchetypeVersion=1.7.1
-DgroupId=com.opensourceteams \
-DartifactId=flink-maven-scala-2 \
-Dversion=0.0.1 \
-Dpackage=com.opensourceteams.module.bigdata.flink \
-DinteractiveMode=false
查看jar中文件列表
jar tvf test.jar
maven 运行某个类
mvn exec:java -Dexec.mainClass=wikiedits.WikipediaAnalysis
scala 隐式转换,需要用到的包
import org.apache.flink.api.scala._
import org.apache.flink.table.api.scala._
执行计划图
- 用Firefox 打开,显示的比较全(别浏览器有显示不全的现象)
- 地址:https://flink.apache.org/visualizer
//执行计划
//println(env.getExecutionPlan)
//StreamGraph
//println(env.getStreamGraph.getStreamingPlanAsJSON)
Execute Plan
{"nodes":[{"id":1,"type":"Source: Socket Stream","pact":"Data Source","contents":"Source: Socket Stream","parallelism":1},{"id":2,"type":"Flat Map","pact":"Operator","contents":"Flat Map","parallelism":1,"predecessors":[{"id":1,"ship_strategy":"FORWARD","side":"second"}]},{"id":3,"type":"Map","pact":"Operator","contents":"Map","parallelism":1,"predecessors":[{"id":2,"ship_strategy":"FORWARD","side":"second"}]},{"id":5,"type":"Window(TumblingProcessingTimeWindows(3000), ProcessingTimeTrigger, SumAggregator, PassThroughWindowFunction)","pact":"Operator","contents":"Window(TumblingProcessingTimeWindows(3000), ProcessingTimeTrigger, SumAggregator, PassThroughWindowFunction)","parallelism":1,"predecessors":[{"id":3,"ship_strategy":"HASH","side":"second"}]},{"id":6,"type":"Sink: Print to Std. Out","pact":"Data Sink","contents":"Sink: Print to Std. Out","parallelism":1,"predecessors":[{"id":5,"ship_strategy":"FORWARD","side":"second"}]}]}
StreamGraph Plan
{"nodes":[{"id":1,"type":"Source: Socket Stream","pact":"Data Source","contents":"Source: Socket Stream","parallelism":1},{"id":2,"type":"Flat Map","pact":"Operator","contents":"Flat Map","parallelism":1,"predecessors":[{"id":1,"ship_strategy":"FORWARD","side":"second"}]},{"id":3,"type":"Map","pact":"Operator","contents":"Map","parallelism":1,"predecessors":[{"id":2,"ship_strategy":"FORWARD","side":"second"}]},{"id":5,"type":"Window(TumblingProcessingTimeWindows(3000), ProcessingTimeTrigger, SumAggregator, PassThroughWindowFunction)","pact":"Operator","contents":"Window(TumblingProcessingTimeWindows(3000), ProcessingTimeTrigger, SumAggregator, PassThroughWindowFunction)","parallelism":1,"predecessors":[{"id":3,"ship_strategy":"HASH","side":"second"}]},{"id":6,"type":"Sink: Print to Std. Out","pact":"Data Sink","contents":"Sink: Print to Std. Out","parallelism":1,"predecessors":[{"id":5,"ship_strategy":"FORWARD","side":"second"}]}]}
Flink 环境,配置
- Flink 源码debug方法: https://github.com/opensourceteams/flink-maven-scala/blob/master/md/flink-debug.md
- Flink 名词术语 : https://github.com/opensourceteams/flink-maven-scala/blob/master/md/flink-concept.md
- Flink 源码编译: https://github.com/opensourceteams/flink-maven-scala/blob/master/md/flink-build.md
example
-
scala 版Flink WordCount单词统计 : https://github.com/opensourceteams/flink-maven-scala/blob/master/md/wordCount-scala.md
-
wordCount Dataset批处理
- start-scala-shell.sh local
- 参数说明:[local | remote | yarn]
benv.fromElements("a b a c").flatMap(x => x.split(" ")).map((_,1)).groupBy(0).sum(1).print
- 输出结果
(a,2) (b,1) (c,1)
-
Flink 1.7.2 DataStream operator 示例 : https://github.com/opensourceteams/flink-maven-scala/blob/master/md/datastream/flink-datastream-operator.md
-
Flink1.7.2 Dataset transformation示例: https://github.com/opensourceteams/flink-maven-scala/blob/master/md/dataset/flink-dataset-transformation.md
-
Flink1.7.2 sql批处理示例: https://github.com/opensourceteams/flink-maven-scala/blob/master/md/sql/flink-sql-dataset-example.md
-
flink1.7.2 tableapi批处理示例: https://github.com/opensourceteams/flink-maven-scala/blob/master/md/tableapi/flink-tableapi-dataset-example.md
Flink1.7.2 DataStream 源码分析(流处理)
- Flink MiniCluster 作业提交: https://github.com/opensourceteams/flink-maven-scala/blob/master/md/miniCluster/MiniCluster-job-submit.md
- Flink1.7.2 local WordCount源码分析: https://github.com/opensourceteams/flink-maven-scala/blob/master/md/flink-local-wordCount-%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90.md
- Flink Sink 接收数据的顺序(Window发送数据顺序): https://github.com/opensourceteams/flink-maven-scala/blob/master/md/miniCluster/flink-sink-order.md
- Flink Window 排序: https://github.com/opensourceteams/flink-maven-scala/blob/master/md/miniCluster/flink-window-order.md
- Flink1.7.2 Source、Window数据交互源码分析: https://github.com/opensourceteams/flink-maven-scala/blob/master/md/miniCluster/flink-source-window-data-exchange.md
- Flink1.7.2 并行计算源码分析: https://github.com/opensourceteams/flink-maven-scala/blob/master/md/miniCluster/Flink-Parallelism-Calculation.md
- Flink 1.7.2 业务时间戳分析流式数据源码分析: https://github.com/opensourceteams/flink-maven-scala/blob/master/md/miniCluster/Flink-EventTime-watermark.md
- Flink 005-source-operation-sink源码分析: https://github.com/opensourceteams/flink-maven-scala/blob/master/md/images/005-source-operation-sink%E6%BA%90%E7%A0%81%E5%88%86%E6%9E%90.png
Flink1.7.2 Dataset 源码分析(批处理)
- Flink1.7.2 Dataset local 源码分析 : https://github.com/opensourceteams/flink-maven-scala/blob/master/md/dataset/flink-dataset-local.md
- Flink1.7.2 Dataset 文件切片计算方式和切片数据读取源码分析: https://github.com/opensourceteams/flink-maven-scala/blob/master/md/dataset/flink-dataset-FileInputSplit.md
- Flink1.7.2 Dataset 并行计算源码分析: https://github.com/opensourceteams/flink-maven-scala/blob/master/md/dataset/flink-dataset-parallel-cal.md
Flink1.7.2 时序图
- Flink 客户端提交程序到MiniCluster(时序图): https://github.com/opensourceteams/flink-maven-scala/blob/master/md/images/001-%E5%AE%A2%E6%88%B7%E7%AB%AF%E6%8F%90%E4%BA%A4%E7%A8%8B%E5%BA%8F%E5%88%B0MiniCluster.png
- Flink ExecutionGraph的构建和Execution.deploy之前(时序图): https://github.com/opensourceteams/flink-maven-scala/blob/master/md/images/002-ExecutionGraph%E6%9E%84%E5%BB%BA%E5%92%8C%E4%BD%9C%E4%B8%9A%E8%BF%90%E8%A1%8C.png
- Flink Execution deploy和source数据读取(时序图): https://github.com/opensourceteams/flink-maven-scala/blob/master/md/images/003-execution-deploy-source%E6%95%B0%E6%8D%AE%E8%AF%BB%E5%8F%96.png
- Flink OperatorChian计算source数据(时序图): https://github.com/opensourceteams/flink-maven-scala/blob/master/md/images/004_operatorChain_%E8%AE%A1%E7%AE%97source%E6%95%B0%E6%8D%AE.png
Flink 1.7.2 Error 收集
- Flink 1.7.2 Error 收集: https://github.com/opensourceteams/flink-maven-scala/blob/master/md/flink-error.md
相关推荐
在本文中,我们将详细讨论如何在Linux环境中安装和配置Flink 1.7.2集群,这个版本的Flink需要JDK 1.8、Scala 2.12.1以及Hadoop 2.7.2作为其运行的基础。 首先,我们需要确保所有的运行环境已经准备就绪。在这个案例...
《Apache Flink 1.7.2:大数据处理框架的深度解析》 Apache Flink 是一个开源的流处理和批处理框架,它以其强大的实时计算能力、高效的容错机制以及对大规模数据处理的支持而备受瞩目。Flink 1.7.2 版本是其发展...
Flink 1.7.2 对SQL支持进行了改进,增强了语法兼容性,使得分析任务更加直观和便捷。 6. **性能优化**:Flink 1.7.2 版本着重提升了执行性能,包括优化了并行度调整、内存管理以及网络传输的效率。这些改进使得...
总结,Apache Flink 1.7.2是一个强大且灵活的大数据处理框架,它的功能覆盖了从简单的数据转换到复杂的实时分析。结合对Hadoop 2.7和Scala 2.12的支持,它为开发者提供了更广泛的平台选择和开发便利。无论是在传统的...
Apache Flink 是一个开源的流处理和批处理框架,它...对于数据分析、实时监控等场景,Flink是一个值得信赖的选择。通过深入学习和实践"flink-1.7.2-bin-scala_2.11.tgz"中的内容,可以掌握流处理的核心技术和实践技巧。
flink 1.6.0 源码 <!-- Dummy module to force execution of the Maven Shade plugin (see Shade plugin below) --> <module>tools/force-shading <module>flink-annotations <module>flink-shaded-...
1. **源码结构分析**:了解Flink的整体架构,如JobManager、TaskManager、DataStream和Table API的实现。 2. **核心组件研究**:深入研究ExecutionGraph、Operator、StreamTransformer等关键组件的工作原理。 3. *...
在Flink 1.7.0和1.7.2版本中,它提供了高效、低延迟的数据流处理能力,支持实时计算和批处理任务。这两个版本的发布旨在增强稳定性和性能,同时也引入了一些新特性。 1. **流处理核心特性** - **状态管理**:Flink...
"Flink示例源码-Flink入门"是一个旨在帮助初学者理解并掌握Flink核心概念和功能的资源包。在这个压缩包中,我们可能会找到一些精心设计的Flink示例代码,这些代码将有助于我们了解如何使用Flink进行数据处理。 首先...
5、Flink 源码解析 —— Standalone Session Cluster 启动流程深度分析之 Job Manager 启动 6、Flink 源码解析 —— Standalone Session Cluster 启动流程深度分析之 Task Manager 启动 7、Flink 源码解析 —— ...
Flink的核心架构和执行流程,可以通过其源码来深入理解,这正是这篇文档所要做的。 首先,Flink的执行环境是其核心架构的一个重要组成部分。在Flink中,算子(Operator)是处理数据的基本单位,算子的注册(声明)...
《深入解析Flink1.11.0源码编译》 Flink作为一个高效、可扩展、容错的流处理框架,在大数据领域扮演着至关重要的角色。本文将围绕Flink1.11.0版本的源码编译展开,帮助读者深入理解其内部机制,并提供详细的编译...
Apache-flink 未授权访问任意jar包上传反弹shell
Flink 1.7 源码分析与详解 Apache Flink 是一个开源的流处理和批处理框架,因其高效、可扩展和容错性而备受赞誉。在Flink 1.7 版本中,它继续优化了数据处理性能,并提供了一套强大的API来支持实时和批处理任务。...
《Flink源码分析》 Flink作为一款流行的开源大数据处理框架,以其高效的流处理和批处理能力在业界获得了广泛的应用。深入理解Flink的源码对于开发者来说至关重要,这不仅可以帮助我们更好地利用Flink的功能,还能让...
一、Flink源码分析——用户状态数据的源码实现 状态数据是flink中非常重要的一部分,在flink实时计算中,涉及到聚合操作的计算,不管是窗口计算还是非窗口计算,都离不开状态数据,在窗口计算中,状态数据由flink...
Flink源码分析-Job调度部署运行流程.pdf
Flink1.19源码剖析课程下载
《Flink实战:案例源码与数据集解析》 Apache Flink是一款强大的开源流处理框架,它在实时数据处理领域有着广泛的应用。本资源“Flink案例源码和数据集.rar”提供了丰富的学习材料,包括实际操作的源代码以及配套的...
分析源码不仅仅是理论研究,更应该结合实际开发经验。了解如何阅读和修改Flink源码,可以帮助开发者快速定位和解决问题,提升开发效率。 通过以上内容的深入学习,开发者不仅可以掌握Flink的核心原理,还能具备...