spark论文中说他使用了延迟调度算法,源于这篇论文:http://people.csail.mit.edu/matei/papers/2010/eurosys_delay_scheduling.pdf 同时它也是hadoop的调度算法. Abstract delay scheduling: when the job that should be scheduled next according to fairness cannot launch a local task, it waits f…
延迟调度算法的实现是在TaskSetManager类中的,它通过将task存放在四个不同级别的hash表里,当有可用的资源时,resourceOffer函数的参数之一(maxLocality)就是这些资源的最大(或者最优)locality级别,如果存在task满足资源的locality,那从最优级别的hash表.也就是task和excutor都有loclity级别,如果能找到匹配的task,那从匹配的task中找一个最优的task.    =====================延迟调度算法=…
spark支持YARN做资源调度器,所以YARN的原理还是应该知道的:http://www.socc2013.org/home/program/a5-vavilapalli.pdf    但总体来说,这是一篇写得一般的论文,它的原理没有什么特别突出的,而且它列举的数据没有对比性,几乎看不出YARN有什么优势.反正我看完的感觉是,YARN的资源分配在延迟上估计很糟糕.而实际使用似乎也印证了这个预感. Abstract  two key shortcomings: 1) tight coupling…
目录 概况 手工搭建集群 引言 安装Scala 配置文件 启动与测试 应用部署 部署架构 应用程序部署 核心原理 RDD概念 RDD核心组成 RDD依赖关系 DAG图 RDD故障恢复机制 Standalone模式的Spark架构 YARN模式的Spark架构 应用程序资源构建 API WordCount示例 RDD构建 RDD缓存与持久化 RDD分区数 共享变量 RDD Operation RDD Operation隐式转换 RDD[T]分区Operation RDD[T]常用聚合Operati…
spark笔记 spark简介 saprk 有六个核心组件: SparkCore.SparkSQL.SparkStreaming.StructedStreaming.MLlib,Graphx SparkCore 相当于Hadoop中的MapReduce,用于大规模离线批处理计算 SparkSQL 相当于Hive(稍微类似),用于交互式计算 注意: 1.交互式计算:用户界面中的查询条件进行过滤查询,然后交给SparkSQL进行处理,产生输出数据.速度比较快 2.交互式计算框架:Presto.Imp…
http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf  ucb关于spark的论文,对spark中核心组件RDD最原始.本质的理解,没有比这个更好的资料了.必读. Abstract RDDs provide a restricted form of shared memory, based on coarse grained transformations rather than fine-grained updates to…
Stage 是一组独立的任务,他们在一个job中执行相同的功能(function),功能的划分是以shuffle为边界的.DAG调度器以拓扑顺序执行同一个Stage中的task. /** * A stage is a set of independent tasks all computing the same function that need to run as part * of a Spark job, where all the tasks have the same shuffle…
DAGScheduler最终创建了task set,并提交给了taskScheduler.那先得看看task是怎么定义和执行的. Task是execution执行的一个单元. Task: executor执行的基本单元,也是spark操作的最小单位.和java executor的task基本上是相同含义的. /** * A unit of execution. We have two kinds of Task's in Spark: * - [[org.apache.spark.schedul…
在前面的sparkContex和RDD都可以看到,真正的计算工作都是同过调用DAGScheduler的runjob方法来实现的.这是一个很重要的类.在看这个类实现之前,需要对actor模式有一点了解:http://en.wikipedia.org/wiki/Actor_model http://www.slideshare.net/YungLinHo/introduction-to-actor-model-and-akka 粗略知道actor模式怎么实现就可以了.另外,应该先看看DAG相关的概念…
了解RDD之前,必读UCB的论文,个人认为这是最好的资料,没有之一. http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf A Resilient Distributed Dataset (RDD), the basic abstraction in Spark. Represents an immutable,* partitioned collection of elements that can be operated o…