随笔分类 - Spark源码剖析
摘要:接着上期内核源码(六)的最后,DAGSchedule会将每个Job划分一系列stage,然后为每个stage创建一批task(数量与partition数量相同),并计算其运行的最佳位置,最后针对这一批task创建一个TaskSet对象,调用submitTasks方法提交TaskSet到TaskSch
阅读全文
摘要:引言 对于Spark开发人员来说,了解stage的划分算法可以让你知道自己编写的spark application被划分为几个job,每个job被划分为几个stage,每个stage包括了你的哪些代码,只有知道了这些之后,碰到某个stage执行特别慢或者报错,你才能快速定位到对应的代码,对其进行性能
阅读全文
摘要:引言 我们知道在application中每存在一个action操作就会触发一个job,那么spark底层是怎样触发job的呢?接下来我们用一个wordcount程序来剖析一下job的触发机制。 解析wordcount源码 new PairRDDFunctions(rdd) 在上面我们也可以看到red
阅读全文
摘要:上篇文章我们剖析了Master的原理和源码,知道了当Master使用资源分配算法将资源分配完成后,就会给对应的Worker发送启动Driver或者Executor的消息,那么Worker收到这些消息后,具体是怎么启动Driver或者Executor的呢?这篇文章就让我们深入剖析一下Worker的原理
阅读全文
摘要:一. 状态改变机制源码分析 在剖析Master核心的资源调度算法之前,让我们先来看看Master的状态改变机制。 Driver状态改变 可以看出,一旦Driver状态发生改变,基本没有好事情,后果要么是删除Driver,要么是报异常! removeDriver方法: 可以看出,一旦Driver状态发
阅读全文
摘要:一. 主备切换机制 概要 Spark Master主备切换可以基于两种机制,一种是基于文件系统的,一种是基于Zookeeper的,基于文件系统的主备切换机制,需要在Active Master挂掉之后,由我们手动去切换到Standby Master上;而基于Zookeeper的主备切换机制,可以实现自
阅读全文
摘要:一:SparkContext原理 千言万语不抵一张图啊!(看不懂也别急,把下面的源码看完后再回过来看这张图你就懂了) 1-1 1-1 1-1 二:SparkContext源码剖析 SparkContext最重要的功能就是创建了TaskScheduler、DAGSchedule和SparkUI(404
阅读全文
摘要:千言万语不如一张图! Spark应用运行原理图 Spark应用运行原理图 Spark应用运行原理图 流程梳理 注意:这是总体架构概括,后面的博文将对其中的各个组件和功能进行深度剖析!
阅读全文
摘要:由于近期准备深入研究一下Spark的核心源码,所以开了这一系列用来记录自己研究spark源码的过程! 想要读源码,那么第一步肯定导入spark源码啦(笔者使用的是IntelliJ IDEA),在网上找了一圈,尝试了好几种方法都没有成功,最终通过自己摸索出了一种非常简单的方式(只需要两步即可!) 环境
阅读全文

浙公网安备 33010602011771号