Skip to content

大数据相关源代码阅读(持续更新中...)。目前包括SparkCore、SparkSql、SparkStreaming、FlinkCore、ScalaLibrary、JavaSrc模块源码阅读。SparkCore包括部署Deploy模块、执行Executor模块、内存Memory模块、调度Scheduler模块、经典的Shuffle模块、存储Storage模块等等。

Notifications You must be signed in to change notification settings

baolibin/BigDataSourceCode

Repository files navigation

前奏

本项目主要是大数据相关技术源码阅读。
随着大数据行情发展,支撑这个体系相关的技术也越来越多。
目前列出来的是比较核心常用的框架源码,包括:
基础编程语言:Java、Scala
数据处理框架:Spark、Flink
欢迎小伙伴一起加入阅读,夯实自己的技术,体验其中的乐趣。
持续更新中...

源码阅读


一、spark core源码阅读

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编解码器。

二、spark sql源码阅读

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模块源码:查询异常监听器。

三、spark streaming源码阅读

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功能模块源码:相关操作工具类。

四、flink core源码阅读

FlinkCore模块源码阅读,版本1.9.0。
1、api模块源码:提供了核心对外操作API组件,包括state、time等。
2、configuration模块源码:提供相关配置方法类。
3、core模块源码:包括文件、IO、内存等核心操作组件。
4、types模块源码:数据类型相关操作类。
5、util模块源码:提供了众多工具类方法。

五、flink streaming源码阅读

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等。

六、flink batch源码阅读

FlinkBatch模块源码阅读,版本1.9.0。
1、operators模块源码:对数据的一些操作。
2、typeutils模块源码:一些序列化类型工具类。
4、extensions模块源码:扩展包括对所有数据集表示的几个隐式转换,这些数据集表示可以从这个特性中获得。
5、metrics模块源码:这个类允许使用函数引用从Scala简明地定义一个规范。
7、utils模块源码:此类提供了简单的实用程序方法,用于使用索引或唯一标识符压缩数据集中的元素,从数据集中采样元素。
8、核心模块源码:Flink Scala API。

七、scala library源码阅读

ScalaLibrary模块源码阅读,版本2.11.8。
2、核心Scala Library功能模块源码: 核心Scala类型。它们在没有显式导入的情况下始终可用。
5、Collection功能模块源码: 包含使用和扩展Scala集合库所需的基本特性和对象。
7、Concurrent功能模块源码: 包含用于并发和并行编程的原语。
8、Io功能模块源码: 数据IO相关操作。
9、Math功能模块源码: 包含执行基本数值运算(如初等指数函数、对数函数、根函数和三角函数)的方法。
10、Ref功能模块源码: 引用操作。
13、Sys功能模块源码: 包含读取和更改虚拟机的核心方面以及虚拟机外部世界的方法。
14、Text功能模块源码: 格式输出打印依赖。
15、Util功能模块源码: 一些基本的Scala工具类。

八、java src源码阅读

JavaSrc模块源码阅读,版本1.8.0。
1、applet模块源码:applet是一个小程序,不自己运行,而是嵌入到另一个应用程序中。
2、awt模块源码:桌面Application开发包。
3、beans模块源码:包含了开发bean相关的类,各种操作自定义bean的类。
4、io模块源码:IO操作相关的类。
5、lang模块源码:提供Java编程语言设计的基础类。
6、math模块源码:提供用于执行任意精度整数算术({@code BigInteger})和任意精度十进制算术({@code BigDecimal})的类。
7、net模块源码:提供用于实现网络应用程序的类。
8、nio模块源码:非阻塞IO相关操作类。
9、rmi模块源码:RMI是Java的一组拥护开发分布式应用程序的API。RMI使用Java语言接口定义了远程对象,它集合了Java序列化和Java远程方法协议(Java Remote Method Protocol)。
10、security模块源码:提供安全框架的类和接口。这包括实现易于配置的,细粒度访问控制安全体系结构。
11、sql模块源码:提供SQL操作相关类。
12、text模块源码:提供了对显示对象格式化的接口、类及异常处理等。
13、time模块源码:日期、时间、实例和持续时间的主API。
14、util模块源码:Java操作工具类,里面包括很多集合类。

About

大数据相关源代码阅读(持续更新中...)。目前包括SparkCore、SparkSql、SparkStreaming、FlinkCore、ScalaLibrary、JavaSrc模块源码阅读。SparkCore包括部署Deploy模块、执行Executor模块、内存Memory模块、调度Scheduler模块、经典的Shuffle模块、存储Storage模块等等。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages