ITPub博客

首页 > 数据库 > > Spark源码阅读的正确打开方式

Spark源码阅读的正确打开方式

作者:gaokeke123 时间:2022-05-31 10:41:55 0 删除 编辑

Spark发展至今,应该说已经非常成熟了。是大数据计算领域不得不学习的框架。尤其是Spark在稳定性和社区发展的成熟度方面,吊打其他的大数据处理框架。

Spark至今只经历过1.x、2.x和3.x三个大版本的变化,在核心实现上,我们在Github能看到的最早的实现是0.5版本,这个版本只有1万多行代码,就把Spark的核心功能实现了。

file

当然我们不可能从这么古老的版本看,假如你接触过Spark,现在准备看源码,那么我建议从2.x版本中选取一个,最好是2.3或者2.4。但是经过如此多的迭代,Spark的代码量已经暴增了几倍。所以你需要抓住重点,本文就是想跟大家说说,我们该怎么看,看哪些东西。

基础概念篇

首先假如你是第一次接触Spark,那么你需要对Spark的设计思想有所了解,知道Spark用了哪些抽象,Spark在提出RDD的时候是基于什么样的考虑。

在这里给大家推荐几篇论文如下:

第一篇:这个不多说,直接给出一个链接,这篇文章不长,很快能看完。

  • 弹性分布式数据集:一种为内存化集群计算设计的容错抽象
    https://fasionchan.com/blog/2017/10/19/yi-wen-tan-xing-fen-bu-shi-shu-ju-ji-yi-zhong-wei-nei-cun-hua-ji-qun-ji-suan-she-ji-de-rong-cuo-mo-xing/

第二篇:

  • 大型集群上的快速和通用数据处理架构

这篇论文长达170多页,当然我们没有必要看完,我在网上找到一个总结,我们在《弹性分布式数据集:一种为内存化集群计算设计的容错抽象》这篇论文基础上看起来也会轻松不少。链接如下:https://blog.csdn.net/weixin_44024821/article/details/89948115

环境准备

Spark的源码环境搭建网上有很多资源,主要是环境依赖比如JDK、Scala、Maven等,整个过程大概耗时要1-4个小时,主要是编译源码费时。大家可以在网上任意找一篇文章搭建起来环境就可以。直到你在编译时出现下图就大功告成了。(我个人强烈不建议使用sbt的方式编译,推荐Maven)

file

Spark核心设计篇

file

上图是一个最简单的Spark任务的执行图。

在核心设计篇,我们最重要的模块列表如下:

Spark的初始化

SparkContextSparkEnvSparkConfRpcEnvSparkStatusTrackerSecurityManagerSparkUIMetricsSystemTaskScheduler

Spark的存储体系

SerializerManagerBroadcastManagerShuffleManagerMemoryManagerNettyBlockTransferServiceBlockManagerMasterBlockManagerCacheManager

Spark的内存管理

MemoryManagerMemoryPoolExecutionMemoryPoolStorageMemoryPoolMemoryStoreUnifiedMemoryManager

Spark的运算体系

LiveListenerBusMapOutputTrackerDAGSchedulerTaskSchedulerExecutorAllocationManagerOutputCommitCoordinatorContextClearner

Spark的部署模式

LocalSparkClusterStandaloneMater/Executor/Worker的容错

Spark Streaming

StreamingContextReceiverDstream窗口操作

Spark SQL

CatalogTreeNode词法解析器ParserRuleExecutorAnalyzer与OptimizerHive SQL相关

其他

假如你对图计算Spark GraphX和机器学习Spark MLlib感兴趣,可以单独看看。

整个跟实时计算相关的包和类大部分都已经包含在上述目录中了。假如你在使用的过程中出现了问题,就需要针对其中的具体部门去看。

源码阅读是我们每一个开发者都需要经历的阶段,阅读源码的好处就不说了。你我都懂。


作者:王知无
链接:https://juejin.cn/post/6844904061855072270
来源:稀土掘金

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26692020/viewspace-3141072/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
大家好

注册时间:2013-08-14

  • 博文量
    1432
  • 访问量
    31652