Spark
文章平均质量分 70
fannk
这个作者很懒,什么都没留下…
展开
-
Spark源码分析1-部署与整体架构
Spark官网:http://spark.apache.org/docs/latest/Apache Spark is a fast and general-purpose cluster computing system. It provides high-level APIs in Scala, Java, and Python that make parallel jobs easy...2014-05-06 10:26:35 · 96 阅读 · 0 评论 -
Spark源码分析12-yarn部署
明天写原创 2014-05-13 22:08:06 · 99 阅读 · 0 评论 -
Spark源码分析11-BlockManager
BlockManager主要在deriver和excutor构造。在deriver构造了一个BlockManagerMasterActor对象,主要负责收集block的info。在executor创建了BlockManagerMasterActor的ref,并且将ref封装到BlockManagerMaster中用于与BlockManagerMasterActor的通信。BlockManage...原创 2014-05-13 22:06:59 · 75 阅读 · 0 评论 -
Spark源码分析10-Schedualer
Spark很重要的一部分是Task的schedual,以下是具体的流程图。 SchedulableBuilder分为两种,分别是FairSchedulableBuilder和FIFOSchedulableBuilder。主要是pool的getSortedTaskSetQueue方法中调用不同的taskSetSchedulingAlgorithm去排序schedulableQueue o...2014-05-11 20:00:20 · 161 阅读 · 0 评论 -
Spark源码分析9-Excutor
Excutor主要分为两部分,一是ExecutorBackend,二是Executor。ExecutorBackend用来接收信息,调用Executor执行task。我们以CoarseGrainedExecutorBackend为例介绍Excutor。worker会调用java命令启动CoarseGrainedExecutorBackend。在run函数中创建了CoarseGrainedEx...原创 2014-05-11 10:48:33 · 235 阅读 · 0 评论 -
Spark源码分析8-client 如何选择将task提交给那个excutor
spark中很重要的一点就是task具体分配到哪个excutor上执行,如果分配不合理,将会消耗很多额外的资源。例如:executor1用flume receiver接收到数据,并将数据保存到block1上,excutor2用flume receiver接收到数据,并将数据保存到block2上。RDD将有两个patition,将对应产生两个task. task1处理block1,task2处理...原创 2014-05-08 15:33:07 · 164 阅读 · 0 评论 -
Spark源码分析7-Metrics的分析
spark用metrics-core这个jar包来做spark 各个部件metrics的管理Metrics.properties.template文件是用来配置metrics的,metrics的配置分为两部分,一是source,二是sink。有些类似于flume的source和sink的概念。Source用来收集work,master,deriver,executor等的信息。Source...原创 2014-05-08 11:37:11 · 220 阅读 · 0 评论 -
Spark源码分析6-Worker
Worker 主要负责管理excutor和driver,并向master报告excutor和driver的状态Worker的启动类似于master,创建了worker的actor private[spark] object Worker { def main(argStrings: Array[String]) { val args = new WorkerA...原创 2014-05-08 11:31:05 · 78 阅读 · 0 评论 -
Spark源码分析5-Master
本节主要分析Master 的主要功能。Master主要分为两块. 1. Master leader的选举。2.Master对work,application,deriver的管理 首先看Master是怎么启动的调用了 actorSystem.actorOf()创建了Master Actor对象 def main(argStrings: Array[String]) {...原创 2014-05-07 11:15:41 · 103 阅读 · 0 评论 -
Spark源码分析4-RDD computor
Excutor在接收到task后会调用RDD的computor方法来计算最后的结果,下图是每个RDD的computor函数原创 2014-05-06 14:46:35 · 91 阅读 · 0 评论 -
Spark源码分析3-The connect between driver,master and excutor
这一节讲述的是driver,master,excutor 之间交互的流程,从register application到launch task原创 2014-05-06 14:41:37 · 91 阅读 · 0 评论 -
Spark源码分析2-Driver generate jobs and launch task
Driver generate jobs and launch task1. Driver将按照DStream的compute方法生成RDD的依赖列表2. 按照RDD的关系生成stage的列表,stage分为两种:finalStage和shuffledStage . 1)每个ShuffledRDD 都会产生一个shuffledStage,shuffledstage用来将shu...原创 2014-05-06 14:34:16 · 107 阅读 · 0 评论 -
Spark源码分析13-Tuning Spark
We can refer to the link http://spark.incubator.apache.org/docs/latest/tuning.html for detail tuning document. After tuning, spark can process 200M logs every minutes in one single work ...原创 2014-05-15 17:48:37 · 74 阅读 · 0 评论