Spark核心概念名词

11864772-b70c17315cad8707.png
Spark 架构图
  • Application:用户程序建立在Spark上。由群集上的驱动程序和执行程序组成

  • Application jar:包含用户的Spark应用程序的jar。在某些情况下,用户需要创建一个包含其应用程序及其依赖项的“uber jar”。用户的jar不应该包含Hadoop或Spark库,但是,这些将在运行时添加。

  • Driver program:运行应用程序的main()函数并创建SparkContext的进程

  • Cluster manager:用于获取群集资源的外部服务(例如Standalone,Mesos,YARN),在Standalone模式中即为Master(主节点),控制整个集群,监控Worker。在YARN模式中为资源管理器。

  • Worker node:从节点,负责控制计算节点,启动Executor。在YARN模式中为NodeManager,负责计算节点的控制。

  • Deploy mode:区分驱动程序进程的运行位置。在“cluster”模式下,框架在集群内部启动驱动程序。在“client”模式下,提交者在群集外部启动驱动程序。

  • SparkContext:Spark程序入口,控制应用的生命周期。

  • Executor:执行器,在worker node上执行任务的组件、用于启动线程池运行任务。每个Application拥有独立的一组Executors。

  • Task:一个Stage包含一到多个Task,通过多个Task实现并行运行的功能。

  • Job:甲并行计算由多个任务的是获取响应于Spark动作衍生(例如save,collect); 你会在驱动程序的日志中看到这个术语

  • Stage:每个作业被分成较小的任务组,称为阶段,彼此依赖(类似于MapReduce中的map和reduce阶段); 你会在驱动程序的日志中看到这个术语。

  • RDD:Spark的基本计算单元,一组RDD可形成执行的有向无环图RDD Graph。

  • DAG Scheduler:实现将Spark作业分解成一到多个Stage,每个Stage根据RDD的Partition个数决定Task的个数,然后生成相应的Task set放到TaskScheduler中。

  • TaskScheduler:将任务(Task)分发给Executor执行。(所以Executor执行的就是我们的代码)

  • Transformations:转换(Transformations) (如:map, filter, groupBy, join等),Transformations操作是Lazy的,也就是说从一个RDD转换生成另一个RDD的操作不是马上执行,Spark在遇到Transformations操作时只会记录需要这样的操作,并不会去执行,需要等到有Actions操作的时候才会真正启动计算过程进行计算。(后面的wc例子就会有很好的说明)

  • Actions:操作(Actions) (如:count, collect, save等),Actions操作会返回结果或把RDD数据写到存储系统中。Actions是触发Spark启动计算的动因。

猜你喜欢

转载自blog.csdn.net/weixin_34061555/article/details/87239942