spark的基本概念(术语词典)

spark的基本概念(术语词典)

Spark运行模式

spark可以在本地模式运行,也可以伪分布式运行。分布式运行的方式有三种,底层资源的调度可以使用mesos或者yarn,也可以使用自带的standalone模式。

  • spark standalone:需要部署spark到相关节点,包括master和worker
  • yarn-cluster:Driver和Executor都运行在Yarn集群中。
  • yarn-clinet:Driver运行在本地,Executor运行在yarn集群中。

spark的基本概念:

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

2、Dirver:使用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上运行
  • mesos:
  • yarn:主要是指yarn中resourceManger

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和actioncaozu9o)。同时,RDD是spark最核心的东西,它表示已被分区,被序列化,不可变,有容错机制的,并且能够被并行操作的数据集合。其存储级别可以是内存,也可以是磁盘,可以通过spark.storage.StorageLevel属性配置。

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值