打好基础,别小瞧它!

  spark的运行模式多种多样,在单机上既可以本地模式运行,也可以伪分布模式运行。而当以分布式的方式在集群中运行时。底层的资源调度可以使用Mesos或者Yarn,也可使用spark自带的Standalone模式。

  1、Application : Application的概念和Hadoop MapReduce中的类似,都是用户编写的Spark应用程序,其中包含了一个Driver功能的代码和分布在集群中多个节点上运行的Executor代码。

  

  2、Driver : 使用Driver这一概念的分布式框架很多,比如Hive等。 Spark中的Driver即运行Application的main()函数并创建SparkContext,创建SparkContext的目的是为了准备Spark应用程序的运行环境。在Spark中由SparkContext负责与ClusterManager通信,进行资源的申请、任务的分配和监控等。当Executor部分运行完毕后,Driver同时负责将SparkContext关闭。通常用SparkContext代表Driver。

  3、Executor : 某个Application运行在Worker节点上的一个进程,该进程负责运行某些Task,并且负责将数据存在内存或者磁盘上,每个Application都有各自独立的一批Executor。 在Spark on Yarn模式下其进程名称为CoarseGrainedExecutor Backend,类似于Hadoop MapReduce中的YarnChild。一个CoarseGrainedExecutor  Backend进程有且仅有一个executor对象,它负责将Task包装成taskRunner,并从线程池抽取出一个空闲线程运行Task。这样,每个CoarseGrainedExecutor  Backend能并行运行Task的数量就取决于分配给它的CPU的个数了。

  

  4、Cluster Manager : 指的是在集群上获取资源的外部服务,目前有三种类型:

    Standalone : Spark原生的资源管理,由Master负责资源的分配,可以在亚马逊的EC2上运行。

    Apache Mesos : 与Hadoop MapReduce兼容性良好的一种资源调度框架。

      Hadoop Yarn  : 主要是指的Yarn中的ResourceManager。

  5、Worker  : 集群中任何可以运行Application代码的节点,类似于Yarn中的NodeManager节点。在Standalone模式中指的就是通过slave文件配置的Worker节点,在Spark on Yarn模式中指的就是NodeManager节点。

  6、Task  :  被送到某个Executor上的工作单元,和Hadoop MapReduce中的MapTask和ReduceTask概念一样,是运行Application的基本单元多个Task组成一个Stage,而Task的调度和管理等由下面的TaskScheduler负责。

  7、Job  : 包含多个Task组成的并行计算,往往由Spark Action触发产生。一个Application中可能会产生多个Job

  8、Stage : 每个Job会拆分很多组Task,作为一个TaskSet,其名称为Stage。Stage的划分或调度由下面的DAGScheduler负责。Stage有非最终的Stage(即 Shuffle Map Stage)和最终的Stage(即Result Stage)两种。Stage的边界就是发生Shuffle的地方。

  9、RDD :Spark的基本计算单元,可以通过一系列算子进行操作(主要有Transformation 和Action操作)。同时,RDD是Spark最核心的东西,它表示已被分区、被序列化的、不可变的、有容错机制的,并且能够被并行操作的数据集合。其存储级别可以是内存,也可以是磁盘,可通过spark.storage.StorageLevel属性配置。

  10、共享变量 :在Spark Application运行时,可能需要一些变量,提供给Task 或Driver等使用。 Spark提供了两种共享变量,一种是可以缓存到各个节点的广播变量,另一种是只支持加法操作,可以实现求和的累加变量。

  11、宽依赖 : 与Hadoop MapReduce中Shuffle的数据依赖相同,宽依赖需要计算好所有父RDD对应分区的数据,然后在节点之间进行Shuffle。

  12、窄依赖: 指某个具体的RDD,其分区partitoin a最多被子RDDD中的一个分区partitoin b依赖。此种情况只有Map任务,是不需要发生Shuffle过程的。

  13、DAGScheduler : 根据Job构建基于Stage的DAG,并提交Stage给TaskScheduler。其划分Stage的依据是RDD之间的依赖关系。

  14、TaskScheduler : 将Taskset提交给Worker(集群)运行,每个Executor运行什么Task就是在此处分配的。

Spark 概念学习系列之Spark基本概念和模型(十八)的更多相关文章

  1. Spark 概念学习系列之Spark 多语言编程

    不多说,直接上干货! Spark 同时支持Scala.Python.Java 三种应用程序API编程接口和编程方式, 考虑到大数据处理的特性,一般会优先使用Scala进行编程,其次是Python,最后 ...

  2. Spark 概念学习系列之Spark存储管理机制

    Spark存储管理机制 概要 01 存储管理概述 02 RDD持久化 03 Shuffle数据存储 04 广播变量与累加器 01 存储管理概述 思考: RDD,我们可以直接使用而无须关心它的实现细节, ...

  3. Spark 概念学习系列之Spark Core(十五)

    不多说,直接上干货! 最关键的是转换算子Transformations和缓存算子Actions. 主要是对RDD进行操作. RDD Objects  ->  Scheduler(DAGSched ...

  4. Spark RDD概念学习系列之Spark的算子的作用(十四)

    Spark的算子的作用 首先,关于spark算子的分类,详细见 http://www.cnblogs.com/zlslch/p/5723857.html 1.Transformation 变换/转换算 ...

  5. Spark RDD概念学习系列之Spark Hash Shuffle内幕彻底解密(二十)

    本博文的主要内容: 1.Hash Shuffle彻底解密 2.Shuffle Pluggable解密 3.Sorted Shuffle解密 4.Shuffle性能优化 一:到底什么是Shuffle? ...

  6. Spark Streaming概念学习系列之Spark Streaming容错

    Spark Streaming容错 检查点机制-checkpoint 什么是检查点机制? Spark Streaming 周期性地把应用数据存储到诸如HDFS 或Amazon S3 这样的可靠存储系统 ...

  7. Spark SQL概念学习系列之Spark SQL概述

    很多人一个误区,Spark SQL重点不是在SQL啊,而是在结构化数据处理! Spark SQL结构化数据处理 概要: 01 Spark SQL概述 02 Spark SQL基本原理 03 Spark ...

  8. Spark RDD概念学习系列之Spark的数据存储(十二)

    Spark数据存储的核心是弹性分布式数据集(RDD). RDD可以被抽象地理解为一个大的数组(Array),但是这个数组是分布在集群上的. 逻辑上RDD的每个分区叫一个Partition. 在Spar ...

  9. Hadoop概念学习系列之Hadoop、Spark学习路线(很值得推荐)(十八)

    不多说,直接上干货! 说在前面的话 此笔,对于仅对于Hadoop和Spark初中学者.高手请忽略! 1 Java基础: 视频方面:          推荐<毕向东JAVA基础视频教程>.学 ...

随机推荐

  1. Prüfer序列和cayley定理

    参考资料: 1.matrix67 <经典证明:Prüfer编码与Cayley公式> 2.百度百科 3.Forget_forever prufer序列总结 4.维基百科 5.dirge的学习 ...

  2. Android三角标签View:TriangleLabelView

     Android三角标签View:TriangleLabelView 在一些商城.产品推销类APP中,如淘宝.京东.电影门票销售.商品降价促销这类的APP,常常会在其APP中看到,某些商品的左上角 ...

  3. zoj 2110 很好的dfs+奇偶剪枝

    //我刚开始竟然用bfs做,不断的wa,bfs是用来求最短路的而这道题是求固定时间的 //剪纸奇偶剪枝加dfs #include<stdio.h> #include<queue> ...

  4. 20180906关于mysql启动

    转自 https://blog.csdn.net/sqlserverdiscovery/article/details/52808541

  5. Ubuntu 16.04安装迅雷(兼容性不高)

    迅雷官方没有提供LInux的版本,但是提供了一个Xware的版本,这个是用来制作离线下载的,但是网上已经有人通过这个集成了桌面应用:但是没怎么测试过,稳定性不高. http://forum.ubunt ...

  6. VB的程序如何破解

    VB的程序,不会告诉你这个VB写的,但是从界面来看就很像VB,一般是单文件的EXE,然后软件还比较小(早期的傻瓜式软件写的东西)   比如说我们想要知道这个"手动采集"按钮干了什么 ...

  7. Android 好看的搜索界面,大赞Animation

    转载请注明出处王亟亟的大牛之路 一直对Animation属于可有可无的不在意.看到个样例,认为在不切换的情况下,适当的应用还真是蛮好看的. 包结构: 一个类一个控件.内容简单. 执行效果: 下方的下方 ...

  8. 玩转iOS开发 - 视图控制器生命周期

    视图控制器生命周期

  9. IOS - 设置与帮助界面

    设置与帮助 改动头像, 改动password, 移动客服, 帮助, 声明, 关于我们. 代码 // // IndexSetting600ViewController.h // SymptomCheck ...

  10. 关于Tomcat的点点滴滴(体系架构、处理http请求的过程、安装和配置、文件夹结构、设置压缩和对中文文件名称的支持、以及Catalina这个名字的由来……等)

    总结Tomcat的体系架构.处理http请求的过程.安装和配置.文件夹结构.设置压缩和对中文文件名称的支持.以及Catalina这个名字的由来--等. Tomcat和JVM: 一个Tomcat仅仅会启 ...