《Apache Spark 设计与实现》

我要开发同款
匿名用户2015年07月16日
38阅读
所属分类、其他开源、开源图书
授权协议未知

作品详情

本文主要讨论ApacheSpark的设计与实现,重点关注其设计思想、运行原理、实现架构及性能调优,附带讨论与HadoopMapReduce在设计与实现上的区别。不喜欢将该文档称之为“源码分析”,因为本文的主要目的不是去解读实现代码,而是尽量有逻辑地,从设计与实现原理的角度,来理解job从产生到执行完成的整个过程,进而去理解整个系统。

讨论系统的设计与实现有很多方法,本文选择问题驱动的方式,一开始引入问题,然后分问题逐步深入。从一个典型的job例子入手,逐渐讨论job生成及执行过程中所需要的系统功能支持,然后有选择地深入讨论一些功能模块的设计原理与实现方式。也许这样的方式比一开始就分模块讨论更有主线。

本文档面向的是希望对Spark设计与实现机制,以及大数据分布式处理框架深入了解的Geeks。

因为Spark社区很活跃,更新速度很快,本文档也会尽量保持同步,文档号的命名与Spark版本一致,只是多了一位,最后一位表示文档的版本号。

由于技术水平、实验条件、经验等限制,当前只讨论Sparkcorestandalone版本中的核心功能,而不是全部功能。诚邀各位小伙伴们加入进来,丰富和完善文档。

关于学术方面的一些讨论可以参阅相关的论文以及Matei的博士论文,也可以看看我之前写的这篇blog。

好久没有写这么完整的文档了,上次写还是三年前在学Ng的ML课程的时候,当年好有激情啊。这次的撰写花了20+days,从暑假写到现在,大部分时间花在debug、画图和琢磨怎么写上,希望文档能对大家和自己都有所帮助。

内容

本文档首先讨论job如何生成,然后讨论怎么执行,最后讨论系统相关的功能特性。具体内容如下:

Overview总体介绍

Joblogicalplan介绍job的逻辑执行图(数据依赖图)

Jobphysicalplan介绍job的物理执行图

Shuffledetails介绍shuffle过程

Architecture介绍系统模块如何协调完成整个job的执行

CacheandCheckpoint 介绍cache和checkpoint功能

Broadcast介绍broadcast功能

JobScheduling尚未撰写

Fault-tolerance尚未撰写

可以直接点md文件查看。

喜欢看pdf版本的可以去这里下载。

如果使用MacOSX的话,推荐下载MacDown后使用github主题去阅读这些文档。

示例

写文档期间为了debug系统,自己设计了一些examples,放在了SparkLearning/src/internals下。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论