本项目主要是大数据相关技术源码阅读。
随着大数据行情发展,支撑这个体系相关的技术也越来越多。
目前列出来的是比较核心常用的框架源码,包括:
基础编程语言:Java、Scala
数据处理框架:Spark、Flink
欢迎小伙伴一起加入阅读,夯实自己的技术,体验其中的乐趣。
持续更新中...
-
- 8.0、主要源码类阅读
- org.apache.flink.util.OutputTag类
- org.apache.flink.api.common.typeinfo.TypeInformation类
- org.apache.flink.api.common.state.State类
- org.apache.flink.api.common.operators.Operator类
- org.apache.flink.api.common.functions.FlatMapFunction类
- org.apache.flink.api.common.functions.RichFlatMapFunction类
- org.apache.flink.streaming.api.watermark.Watermark类
- 8.0、主要源码类阅读
SparkCore模块源码阅读,版本2.2.0。
包括部署Deploy模块、执行Executor模块、内存Memory模块、调度Scheduler模块、经典的Shuffle模块、存储Storage模块等等。
1、Deploy模块源码地址:Spark作业提交部署运行模块。
2、Executor模块源码地址:与各种集群管理器一起使用的Executor组件。
3、Memory模块源码:这个软件包实现了Spark的内存管理系统。这个系统由两个主要组件组成,一个JVM范围的内存管理器和一个每个任务的内存管理器。
4、Scheduler模块源码地址:Spark的调度组件。这包括DAGScheduler以及lower level级别的TaskScheduler。
5、Shuffle模块源码地址:map任务到reduce任务数据重新分发模块。
6、Storage模块源码地址:提供RDD的数据存储模块。
7、Util模块源码地址: Spark实用程序。
8、核心Spark功能模块源码地址: 核心Spark功能,[[org.apache.spark.SparkContext]]是Spark的主要入口,而[[org.apache.spark.rdd。rdd]]表示分布式集合的数据类型,并提供大多数并行操作。
9、RDD源码地址:提供各种RDD的实现。
10、Rpc通信源码地址:通信模块。
11、IO源码地址:用于压缩的IO编解码器。
SparkSql模块源码阅读,版本2.2.0。
1、核心SparkSQL功能模块源码: 允许执行关系查询,包括使用Spark在SQL中表示的查询。
2、Api模块源码:包含特定于单一语言(即Java)的API类。
3、CataLog模块源码:Spark的目录接口。要访问请使用SparkSession.catalog。
4、Execution模块源码:sparksql的物理执行组件。请注意,这是一个私有包。catalyst中的所有类都被认为是激发SQL的内部API,并且在不同的小版本之间会发生变化。
5、Expressions模块源码:包含UDAF、Window等操作的表达计算类。
6、Internal模块源码:这个包中的所有类都被认为是Spark的内部API,并且在小版本之间可能会发生更改。
7、Jdbc模块源码:数据库操作相关类。
8、Sources模块源码:一组用于向sparksql添加数据源的api。
10、Util模块源码:查询异常监听器。
SparkSql模块源码阅读,版本2.2.0。
1、核心SparkStreaming功能模块源码: Spark流处理功能。[[org.apache.spark.streaming.StreamingContext]]作为Spark流处理的主要入口。[[org.apache.spark.streaming.dstream.DStream]]表示RDD的连续序列的数据类型,表示连续的数据流。
2、Api功能模块源码:Spark streaming的Java与Python API。
3、Dstream功能模块源码:DStream的各种实现。
4、Rdd功能模块源码:RDD存储“mapWithState”操作的键控状态和相应的映射数据。
5、Receiver功能模块源码:可在工作节点上运行以接收外部数据的接收器的抽象类。
6、Scheduler功能模块源码:作业调度模块。
7、Ui功能模块源码:实时流UI模块。
8、Util功能模块源码:相关操作工具类。
FlinkCore模块源码阅读,版本1.9.0。
1、api模块源码:提供了核心对外操作API组件,包括state、time等。
2、configuration模块源码:提供相关配置方法类。
3、core模块源码:包括文件、IO、内存等核心操作组件。
4、types模块源码:数据类型相关操作类。
5、util模块源码:提供了众多工具类方法。
FlinkStreaming模块源码阅读,版本1.9.0。
1、api模块源码:包括API操作类。
2、experimental模块源码:这个包包含实验类。
3、runtime模块源码:包含实现流运行时的类。
4、util模块源码:流式计算相关操作工具类。
5、async模块源码:触发异步I/O操作的函数。
6、extensions模块源码:这个扩展包括对所有数据流表示的几个隐式转换,这些数据流表示可以从这个特性中获得。要使用这组扩展方法,用户必须通过导入acceptPartialFunctions。
7、function模块源码:主要包括一些窗口操作等方法类。
8、核心模块源码:流式计算相关主要操作类,包括DataStream、StreamExecutionEnvironment等。
FlinkBatch模块源码阅读,版本1.9.0。
1、operators模块源码:对数据的一些操作。
2、typeutils模块源码:一些序列化类型工具类。
4、extensions模块源码:扩展包括对所有数据集表示的几个隐式转换,这些数据集表示可以从这个特性中获得。
5、metrics模块源码:这个类允许使用函数引用从Scala简明地定义一个规范。
7、utils模块源码:此类提供了简单的实用程序方法,用于使用索引或唯一标识符压缩数据集中的元素,从数据集中采样元素。
8、核心模块源码:Flink Scala API。
ScalaLibrary模块源码阅读,版本2.11.8。
2、核心Scala Library功能模块源码: 核心Scala类型。它们在没有显式导入的情况下始终可用。
5、Collection功能模块源码: 包含使用和扩展Scala集合库所需的基本特性和对象。
7、Concurrent功能模块源码: 包含用于并发和并行编程的原语。
8、Io功能模块源码: 数据IO相关操作。
9、Math功能模块源码: 包含执行基本数值运算(如初等指数函数、对数函数、根函数和三角函数)的方法。
10、Ref功能模块源码: 引用操作。
11、Reflect功能模块源码: Scala反射。
13、Sys功能模块源码: 包含读取和更改虚拟机的核心方面以及虚拟机外部世界的方法。
14、Text功能模块源码: 格式输出打印依赖。
15、Util功能模块源码: 一些基本的Scala工具类。
JavaSrc模块源码阅读,版本1.8.0。