Application

  application和Hadoop MapReduce类似,都是指用户编写的spark应用程序,其中包含了一个driver功能的代码和分布在集群中多个节点运行的executor代码。

Driver

使用driver这一概念的分布式框架很多,比如hive。spark中的driver即运行上述application的main()函数并创建sparkcontext,创建sparkcontext的目的是为了准备spark应用程序的运行环境。在spark中,由sparkcontext负责与clustermanager通信,进行资源的申请,任务的分配和监控等。当executor部分执行完毕以后,driver负责将sparkcontext关闭。通常用sparkcontext代表driver。

Executor

某个application运行worker节点上的一个进程,该进程负责执行task,并且负责将数据存储在内存或者磁盘上。每个application都有各自独立的一批executor。在spark on yarn模式下,其进程名字为CoarseGrainedExecutor Backend,类似于Hadoop MapReduce中的YarnChild,一个CoarseGrainedExecutor Backend进程有且仅有一个executor对象,它负责将task包装成taskRunner,并从线程池中抽取一个空闲线程运行task。这样,每个CoarseGrainedExecutor Backend能并行运行task的数量就取决于分配给它的CPU个数了。

ClusterManager

指的是在集群上获取资源的外部服务,目前有三种类型。

Standalone

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

Apache Mesos

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

Hadoop Yarn

主要指的是yarn中的resourcemanager。

Worker

集群中任何可以运行application代码的节点,类似于yarn中的nodemanager节点。在standalone模式中指的就是通过slave文件配置的worker节点,在spark on yarn中指的是nodemanager节点。

Task

被送到某个executor上的工作单元,和Hadoop MapReduce中的maptask和reducetask概念一样,是运行Application的基本单位,多个task组成一个stage,而task的调度和管理由TaskScheduler负责。

Job

包含多个task组成的并行计算,往往由spark Action触发产生。一个Application中可能会产生多个job

Stage

每个job会拆分成多组task,作为一个TaskSet,其名称为Stage,Stage的划分和调度由DAGSchedule负责。Stage有非最终的Stage(即shuffle Map Stage)和最终的Stage即(Result Stage)两种,Stage的边界就是发生shuffle的地方。

RDD

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

共享变量

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

宽依赖

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

窄依赖

或称为narrowDependency,指某个具体的RDD,其分区partition a最多被子RDD中的的一个分区partition b依赖,此种情况只有map任务,是不需要shuffle过程的。窄依赖分为1:1和N:1两种。

DAGScheduler

根据job构建基于stage的DAG,并提交stage给TaksScheduler,其划分stage的依据是RDD之间的依赖关系。

TaskScheduler

将task任务提交给worker运行,每个executor运行什么task就是再次分配的。

常见术语表

spark的一些基本概念和模型的更多相关文章

  1. 大话Spark(1)-Spark概述与核心概念

    说到Spark就不得不提MapReduce/Hadoop, 当前越来越多的公司已经把大数据计算引擎从MapReduce升级到了Spark. 至于原因当然是MapReduce的一些局限性了, 我们一起先 ...

  2. 【转】浅谈UML的概念和模型之UML九种图

    原文地址:浅谈UML的概念和模型之UML九种图 目录: UML的视图 UML的九种图 UML中类间的关系 上文我们介绍了,UML的视图,在每一种视图中都包含一个或多种图.本文我们重点讲解UML每种图的 ...

  3. 【转】从PowerDesigner概念设计模型(CDM)中的3种实体关系说起

    PowerDesigner概念模型的relationship .inheritance. association 从PowerDesigner概念设计模型(CDM)中的3种实体关系说起

  4. Spark快速获得CrossValidator的最佳模型参数

    Spark提供了便利的Pipeline模型,可以轻松的创建自己的学习模型. 但是大部分模型都是需要提供参数的,如果不提供就是默认参数,那么怎么选择参数就是一个比较常见的问题.Spark提供在org.a ...

  5. Spark集群基础概念 与 spark架构原理

    一.Spark集群基础概念 将DAG划分为多个stage阶段,遵循以下原则: 1.将尽可能多的窄依赖关系的RDD划为同一个stage阶段. 2.当遇到shuffle操作,就意味着上一个stage阶段结 ...

  6. Spark 概念学习系列之Spark基本概念和模型(十八)

    打好基础,别小瞧它! spark的运行模式多种多样,在单机上既可以本地模式运行,也可以伪分布模式运行.而当以分布式的方式在集群中运行时.底层的资源调度可以使用Mesos或者Yarn,也可使用spark ...

  7. Spark流式编程介绍 - 编程模型

    来源Spark官方文档 http://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#programm ...

  8. 浅谈UML的概念和模型之UML九种图

    1.用例图(use case diagrams) [概念]描述用户需求,从用户的角度描述系统的功能 [描述方式]椭圆表示某个用例:人形符号表示角色 [目的]帮组开发团队以一种可视化的方式理解系统的功能 ...

  9. [UML]转:浅谈UML的概念和模型之UML九种图

    转自:http://blog.csdn.net/jiuqiyuliang/article/details/8552956 目录: UML的视图 UML的九种图 UML中类间的关系 上文我们介绍了,UM ...

随机推荐

  1. springboot笔记08——整合swagger2

    Swagger是什么? Swagger是一个RESTFUL 接口的文档在线自动生成和功能测试的框架.利用swagger2的注解可以快速的在项目中构建Api接口文档,并且提供了测试API的功能. Spr ...

  2. 【洛谷 P2597】 [ZJOI2012]灾难(LCA)

    题目链接 考虑建一棵树,使一个生物灭绝时他的子树都会灭绝,显然这样答案就是以每个点为根的子树大小-1. 为什么原图不是一棵树,因为一个生物可能会以多个生物为食,所以按拓扑序来建树,把每个遍历到的点的父 ...

  3. php操作表格(写)

    一,转载:http://www.thinkphp.cn/extend/832.html 二,转载:http://m.blog.csdn.net/article/details?id=7827038

  4. CSS是什么

    css是层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML(标准通用标记语言的一个应用)或XML(标准通用标记语言的一个子集)等文件样式的计算机语言. CSS不 ...

  5. HDFS读流程

    客户端先与NameNode通信,获取block位置信息,之后线性地先取第一个块,然后接二连三地获取,取回一个块时会进行MD5验证,验证通过后会使read顺利进行完,当最终读完所有的block块之后,拼 ...

  6. ArrayList集合实现RandomAccess接口有何作用?为何LinkedList集合却没实现这接口

    详见:https://blog.csdn.net/weixin_39148512/article/details/79234817 众所周知,在List集合中,我们经常会用到ArrayList以及Li ...

  7. DRF 有无外键操作实例

    models.py from django.db import models # Create your models here. class Category(models.Model): &quo ...

  8. HQL基本语法及应用案例

    HQL基本语法及应用案例 摘自:<大数据技术体系详解:原理.架构与实践> 一.HQL基本语法 HQL是Hive提供的数据查询语言,由于Hive巨大的影响力,HQL已被越来越多的Hive O ...

  9. XPath知识点【一】

    什么是 XPath? XPath 使用路径表达式在 XML 文档中进行导航 XPath 包含一个标准函数库 XPath 是 XSLT 中的主要元素 XPath 是一个 W3C 标准 XPath 路径表 ...

  10. 彻底终结MySQL同步延迟问题

    作为一名DBA,在工作中会经常遇到一些MySQL主从同步延迟的问题,这些同步慢的问题,其实原因非常多,可能是因为主从的网络问题导致,可能是因为网络带宽问题导致,可能是因为大事务导致,也可能是因为单线程 ...