![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spark源码
技术蚂蚁
这个作者很懒,什么都没留下…
展开
-
源码-DAGScheduler及Stage划分提交
DAGSchedulerDAGScheduler的主要任务是基于Stage构建DAG,决定每个任务的最佳位置记录哪个RDD或者Stage输出被物化面向stage的调度层,为job生成以stage组成的DAG,提交TaskSet给TaskScheduler执行重新提交shuffle输出丢失的stage每一个Stage内,都是独立的tasks,他们共同执行同一个computef原创 2016-09-01 22:24:58 · 840 阅读 · 0 评论 -
Spark运行架构
转载:http://www.cnblogs.com/shishanyuan/archive/2015/08/19/4721326.html1、 Spark运行架构1.1 术语定义lApplication:Spark Application的概念和Hadoop MapReduce中的类似,指的是用户编写的Spark应用程序,包含了一个Driver 功能的代码和分布在集群中多个节点上运行的转载 2016-09-03 17:15:05 · 413 阅读 · 0 评论 -
Spark中Master、Worker、Client通信示意图
1.Master和Worker之间的消息传递示意图2.Master和Client之间的消息传递示意图这几天主要都是基于Standalone分析的,最后以两张图完美收工原文地址:http://www.cnblogs.com/yourarebest/p/5313056.html转载 2016-09-03 11:39:26 · 2483 阅读 · 0 评论 -
源码-Spark on Yarn
接上一篇:Spark的资源管理以及YARN-Cluster Vs YARN-Client下面是Spark On Yarn的流程图:上图比较只管的看到到了流程,下面具体看几个源码Client在Client类中的main方法实例话Client:new Client(args, sparkConf).run()。在run方法中,又调用了val appId = runApp转载 2016-09-03 15:41:29 · 1418 阅读 · 0 评论 -
源码-spark Standalone部署模式及其容错性分析
欢迎转载,转载请注明出处,徽沪一郎。概要本文就standalone部署方式下的容错性问题做比较细致的分析,主要回答standalone部署方式下的包含哪些主要节点,当某一类节点出现问题时,系统是如何处理的。Standalone部署的节点组成介绍Spark的资料中对于RDD这个概念涉及的比较多,但对于RDD如何运行起来,如何对应到进程和线程的,着墨的不是很多。在实际的生产环境转载 2016-09-03 12:40:20 · 744 阅读 · 0 评论 -
源码-spark client(2)
DriverClient中的代码比较简单,它只有一个main函数,同时,和AppClient一样,它也有一个ClientEndpoint,只是两者的用途不一样。1.ClientClient中唯一的main方法如下:def main(args: Array[String]) {if (!sys.props.contains("SPARK_SUBMIT")) {printl转载 2016-09-03 11:37:35 · 338 阅读 · 0 评论 -
源码-spark client(1)
在Spark Standalone中我们所谓的Client,它的任务其实是由AppClient和DriverClient共同完成的。AppClient是一个允许app(Client)和Spark集群通信的中间人,接受master URL、app的信息、一个集群事件的监听器以及事件监听的回调函数,主要和Master交互App相关的信息,DriverClient主要用于和Master交互Driver相转载 2016-09-03 11:35:57 · 245 阅读 · 0 评论 -
源码- Spark中Worker源码分析(二)
继续前一篇的内容。前一篇内容为: Spark中Worker源码分析(一)http://www.cnblogs.com/yourarebest/p/5300202.html4.receive方法, receive方法主要分为以下14种情况:(1)worker向master注册成功后,详见代码 (2)worker向master发送心跳消息,如果还没有注册到master上,该消息将被转载 2016-09-03 11:32:22 · 458 阅读 · 0 评论 -
源码-Spark中Worker源码分析(一)
Worker作为对于Spark集群的健壮运行起着举足轻重的作用,作为Master的奴隶,每15s向Master告诉自己还活着,一旦主人(Master》有了任务(Application),立马交给属于它的奴隶们(Workers),那么奴隶们就会数数自己有多少家当(比如内存、核数),量力而行地交给主人完成的任务,如果奴隶不量力而行在执行任务过程中不幸死了的话,作为主人的Master只会等待60s,如果转载 2016-09-03 11:30:50 · 269 阅读 · 0 评论 -
源码-Spark Master(2)
继续上一篇的内容。上一篇的内容为: 源码-spark Master(1) http://blog.csdn.net/u011007180/article/details/524219294.receive方法,receive方法中消息类型主要分为以下12种情况:(1)重新选择了新Leader,进行数据的恢复(2)恢复完毕,重新创建Driver,完成资源的重新分配(转载 2016-09-03 11:28:50 · 335 阅读 · 0 评论 -
源码-spark Master(1)
Master作为集群的Manager,对于集群的健壮运行发挥着十分重要的作用。下面,我们一起了解一下Master是听从Client(Leader)的号召,如何管理好Worker的吧。1.家当(静态属性)1.设置一个守护单线程的消息发送器,private val forwardMessageThread =ThreadUtils.newDaemonSingleThreadSche转载 2016-09-03 10:54:08 · 274 阅读 · 0 评论 -
源码-stage->task->taskSet->executor
本文:接《DAGScheduler及Stage划分提交》分析Stage中得Task是如何生成并且最终提交到Executor中去的。从org.apache.spark.scheduler.DAGScheduler#submitMissingTasks开始,分析Stage是如何生成TaskSet的。 private def submitMissingTasks(stage: Stage, jo原创 2016-09-02 22:33:45 · 916 阅读 · 0 评论 -
源码-spark的ListenerBus体系
spark源码注释中有下面一句话:Asynchronously passes SparkListenerEvents to registered SparkListeners即所有spark消息SparkListenerEvents 被异步的发送给已经注册过的SparkListeners. 在SparkContext中, 首先会创建LiveListenerBus实例,这个类主要转载 2016-08-31 20:23:23 · 402 阅读 · 0 评论 -
源码-spark运行流程分析
当用户应用new SparkContext后,集群就会为在Worker上分配executor,那么这个过程是什么呢?本文以Standalone的Cluster为例,详细的阐述这个过程。序列图如下:1. SparkContext创建TaskScheduler和DAG SchedulerSparkContext是用户应用和Spark集群的交换的主要接口,用户应用一般首先要创建它。如果你使用原创 2016-08-31 21:22:27 · 1553 阅读 · 0 评论 -
spark 核心作业调度和任务调度
摘要:基本概念 1.1 Application 1.2 Job 1.3 Stage 1.4 TaskSet 1.5 Task 1.6 DAG 2.相关的类 2.1DAGScheduler 2.2ActiveJob 2.3S转载 2016-11-24 23:08:56 · 3755 阅读 · 0 评论