记录自己学习研究 Spark 的探索过程,为后续总结奠定基础。

本文代码研究以 Spark 2.3.0 源代码为基准,如果看本文,请阅读时,下载对应的 Spark 版本。

图1 伯克利的数据分析软件栈BDAS(Berkeley Data Analytics Stack)

这里要先说BDAS(伯克利数据分析栈),是伯克利大学的AMPLab打造的用于大数据的分析的一套开源软件栈,这其中包括了这两年火的爆棚的Spark(Spark Core、Spark SQL、Spark Streaming、MLLib和GraphX等组件,这些组件分别处理Spark Core提供内存计算框架、SparkStreaming的实时处理应用、Spark SQL的即时查询、MLlib或MLbase的机器学习和GraphX的图处理),也包括了冉冉升起的分布式内存系统Alluxio(Tachyon),当然还包括著名的资源管理的开源软件Mesos。可以说Amplab最近几年引领了大数据发展的技术创新的浪潮。从它的官网可以看到这张图片,其中,有不少文字是有链接,指向各自项目的主页的。要查看这些链接,可以到上面BDAS的官网。

1、论文篇

2、准备篇

3、核心篇

图2 一个 Spark 作业执行图

1)Spark 的初始化

2)Spark 内存模型

  • ......

3)Spark 存储体系

  • Spark 核心篇-SerializerManager
  • Spark 核心篇-BroadcastManager
  • Spark 核心篇-ShuffleManager
  • Spark 核心篇-MemoryManager
  • Spark 核心篇-NettyBlockTransferService
  • Spark 核心篇-BlockManagerMaster
  • Spark 核心篇-BlockManager

4)Spark 计算体系

  • Spark 核心篇-LiveListenerBus
  • Spark 核心篇-MapOutputTracker
  • Spark 核心篇-DAGScheduler
  • Spark 核心篇-TaskScheduler
  • Spark 核心篇-ExecutorAllocationManager
  • Spark 核心篇-OutputCommitCoordinator
  • Spark 核心篇-ContextClearner

5)Spark 运行模式

  • ......

4、组件篇

1)Spark SQL

  • ......

2)Spark Streaming

  • ......

3)Spark MLib

  • ......

4)Spark Graphx

  • ......

5、公共篇

1)Tags

Spark源码分析系列(目录)的更多相关文章

  1. Spark 源码分析系列

    如下,是 spark 源码分析系列的一些文章汇总,持续更新中...... Spark RPC spark 源码分析之五--Spark RPC剖析之创建NettyRpcEnv spark 源码分析之六- ...

  2. Kafka源码分析系列-目录(收藏不迷路)

    持续更新中,敬请关注! 目录 <Kafka源码分析>系列文章计划按"数据传递"的顺序写作,即:先分析生产者,其次分析Server端的数据处理,然后分析消费者,最后再补充 ...

  3. spark源码分析以及优化

    第一章.spark源码分析之RDD四种依赖关系 一.RDD四种依赖关系 RDD四种依赖关系,分别是 ShuffleDependency.PrunDependency.RangeDependency和O ...

  4. jQuery-1.9.1源码分析系列完毕目录整理

    jQuery 1.9.1源码分析已经完毕.目录如下 jQuery-1.9.1源码分析系列(一)整体架构 jQuery-1.9.1源码分析系列(一)整体架构续 jQuery-1.9.1源码分析系列(二) ...

  5. 鸿蒙源码分析系列(总目录) | 百万汉字注解 百篇博客分析 | 深入挖透OpenHarmony源码 | v8.23

    百篇博客系列篇.本篇为: v08.xx 鸿蒙内核源码分析(总目录) | 百万汉字注解 百篇博客分析 | 51.c.h .o 百篇博客.往期回顾 在给OpenHarmony内核源码加注过程中,整理出以下 ...

  6. jQuery源码分析系列

    声明:本文为原创文章,如需转载,请注明来源并保留原文链接Aaron,谢谢! 版本截止到2013.8.24 jQuery官方发布最新的的2.0.3为准 附上每一章的源码注释分析 :https://git ...

  7. jquery2源码分析系列

    学习jquery的源码对于提高前端的能力很有帮助,下面的系列是我在网上看到的对jquery2的源码的分析.等有时间了好好研究下.我们知道jquery2开始就不支持IE6-8了,从jquery2的源码中 ...

  8. [Tomcat 源码分析系列] (二) : Tomcat 启动脚本-catalina.bat

    概述 Tomcat 的三个最重要的启动脚本: startup.bat catalina.bat setclasspath.bat 上一篇咱们分析了 startup.bat 脚本 这一篇咱们来分析 ca ...

  9. Thinkphp源码分析系列–开篇

    目前国内比较流行的php框架由thinkphp,yii,Zend Framework,CodeIgniter等.一直觉得自己在php方面还是一个小学生,只会用别人的框架,自己也没有写过,当然不是自己不 ...

随机推荐

  1. Java设计模式从精通到入门四 工厂方法模式

    工厂方法模式 属于23中设计模式中创建型类型. 核心思想:工厂提供创建对象的接口,由子类决定实例化哪一个子类. 来源 ​ 设计模式之禅中的例子,女娲造人,通过八卦炉来进行造人,没有烧熟的为白人,烧太熟 ...

  2. [OC] 使用 cocoaPods 导入 AFNetworking

    AFNetworking的GitHub地址: https://github.com/AFNetworking/AFNetworking 假设我们建立了一个叫做AFNWlearning的工程. 1.打开 ...

  3. Squid快速入门(yum安装)

    加油站代理服务器 前言 Squid是一个Linux系统下优秀的代理服务器软件.Squid可以配置普通上网代理(正向代理).反向代理.透明代理.Squid接收用户的下载申请,并自动处理所下载的数据.当一 ...

  4. emoji

    嗯...闲的... emoji:(博客园的markdown支持emoji编码...惊了) http://getemoji.com/ http://www.fhdq.net/emoji/emojifuh ...

  5. 2017-9-15-Linux移植:WinSCP软件 & SSH Server开启

    在Linux电脑上面安装了TFTP server,但是各种不给力,决定寻找其他办法在Windows和Linux之间传输文件. WinSCP 是一个 Windows 环境下使用 SSH 的开源图形化 S ...

  6. LeetCode(15. 三数之和)

    问题描述 给定一个包含 n 个整数的数组 nums,判断 nums 中是否存在三个元素 a,b,c ,使得 a + b + c = 0 ?找出所有满足条件且不重复的三元组. 注意:答案中不可以包含重复 ...

  7. [CF1038D]Slime

    [CF1038D]Slime 题目大意: 有\(n(n\le5\times10^5)\)只史莱姆,每只史莱姆有一个分数\(w_i(|w_i|le10^9)\),每次一只史莱姆可以吞掉左边的或者右边的史 ...

  8. ReactNative bug:Application XXX has not bean registered.

    故障现象 当react-native init新项目之后运行react-native run -android/ios时手机报错 Application XXX has not bean regist ...

  9. BZOJ2872 : 优莱卡

    $A$类数据:直接输出$B[l]$,$O(n+m)$.$B$类数据:ST表求区间最小值,$O(n\log n+m)$.$C$类数据:可持久线段树求区间$k$小值,$O((n+m)\log n)$.剩下 ...

  10. python系统编程(六)

    threading注意点 1. 线程执行代码的封装 通过上一小节,能够看出,通过使用threading模块能完成多任务的程序开发,为了让每个线程的封装性更完美,所以使用threading模块时,往往会 ...