SparkInternals, 关于 Apache Spark的设计与实现的说明

分享于 

6分钟阅读

GitHub

  繁體 雙語
Notes talking about the design and implementation of Apache Spark
  • 源代码名称:SparkInternals
  • 源代码网址:http://www.github.com/JerryLead/SparkInternals
  • SparkInternals源代码文档
  • SparkInternals源代码下载
  • Git URL:
    git://www.github.com/JerryLead/SparkInternals.git
    Git Clone代码到本地:
    git clone http://www.github.com/JerryLead/SparkInternals
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/JerryLead/SparkInternals
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    内置Spark内部组件

    Spark版本:1.0.2 Doc版本: 1.0.2.0

    作者

    微博/Twitter 身份证名称
    @JerryLeadLijie Xu原中文版的作者及英文版更新
    @juhanlolJU英文版本和更新( 第 0章,1,3,4和 7 )
    @invkrhRen英文版本和更新( 第 2章,5和 6 )
    @AorJoaBhuridech Sudsee泰语版本

    简介

    本系列讨论了 Apache Spark的设计与实现,重点介绍了的设计原理。执行机制。体系结构和性能优化。 此外,在设计和实现方面,还与Hadoop的MapReduce进行了一些比较。 因为目标不是分析项目中的每个代码,而是以系统方式理解整个系统,所以我不愿把这篇文档称为"代码演练"。

    讨论计算机系统有很多方法。 在这里,我们选择了一个的问题驱动方法。 首先介绍一个具体问题,然后逐步分析。 我们将从一个典型的Spark示例工作开始,然后讨论所有相关的重要系统模块。 我相信这种方法比从开始diving每个模块都要好。

    本系列的目标读者是希望对 Apache Spark 以及其他分布式计算框架有更深入了解的极客。

    我将尽量使这个文档保持最新的最新状态,因为它是一个快速发展的社区项目。 文档版本的主要版本与spark版本同步。 末尾的附加数字代表文档版本的更新。

    有关学术方面的讨论,请查阅matei学位论文及其他相关论文。 你也可以看看我的博客( 用中文) 博客。

    我已经很久没写这么完整的文档了。 上次是大约三年前我在学习 Andrew course的时候。 当时我真正的动机是 ! 这一次我在这个文档上花了 20天的时间,从夏天到现在。 大部分时间花在调试。绘制图表和思考如何把我的想法放在正确的方式上。 我希望你能找到这个系列。

    电子邮件内容

    我们从创建Spark作业开始,然后讨论它的执行。 最后,我们深入研究了一些相关的系统模块。

    其他语言

    中文版本位于 Markdown/。 泰语版本位于 Markdown/泰语

    如何阅读这里文档

    文档是用 Markdown 编写的。 pdf版本也可以在这里使用,这里是

    如果你在 Mac OS X 下,我将使用一个github主题 recommand MacDown 来阅读。

    Gitbook ( 中文版)

    感谢 @Yourtion 创建gitbook版本。

    联机读取 http://spark-internals.books.yourtion.com/

    下载

    示例

    在编写过程中,我已经创建了一些示例来调试系统,它们是 SparkLearning/src/internals 下的avaible。

    确认

    感谢你在提供解决方案和想法的帮助下提供有关详细问题的帮助:

    • 参与了对 broadcast(rdd) 对影响的讨论。

    • @CrazyJVM 参与讨论BlockManager的实现。

    • @王联辉 参与讨论BlockManager的实现。

    感谢以下补充文档:

    微博章节内容修订现状
    @OopsOutOfMemory概述工作人员与执行机构的关系及驱动器管理资源( 中国) 火花执行器资源的概要这个主题还没有结论,因为它的实现仍在改变,所以添加到博客的链接。

    由于以下原因,查找错误:

    微博章节错误/发行修订状态
    @Joshuawangzj概述当多个应用程序运行时,将创建多个后台进程修正了但需要确认。 不知道如何控制后端进程的数量
    @_cs_cm概述最近 groupByKey() 删除了 mapValues() 操作,没有生成 MapValuesRDD固定 groupByKey() 相关图表和文本
    @染染生起JobLogicalPlanFullDepedency N:N 中的N:N 关系是一个 NarrowDependency用detaild解释将NarrowDependency的描述修改为 3种不同的情况,比之前的2案例解释更清楚
    @zzl0Fisrt四个章节大量typos,such作为"。groupByKey生成了 3跟随 rdds",should为 2.全部固定
    @左手牵右手TEL缓存和广播章节许多错误全部固定
    @cloud-fanJobLogicalPlanCogroup() 图表中的某些箭头应该是红色全部固定
    @CrazyJvm洗牌详细信息从 1.1开始,spark.shuffle.file.buffer.kb的默认值为 32 k,而不是 100 k全部固定

    特别感谢 @明风Andy 支持他的伟大支持。

    特别感谢参与大数据系统设计。实现和讨论的rockers (。包括研究人员,开发人员和用户)。


    IMP  Implementation  DES  设计  spa  Apache  
    相关文章