Spark基本概念

来源:互联网 发布:单片机与嵌入式的联系 编辑:程序博客网 时间:2024/04/18 09:27

1、基本架构
这里写图片描述

spark程序由Driver Program和Executor Program组成。Driver Program由SparkContext构建,提供应用程序的运行环境。而Executor Program是应用程序的主体部分,在各个节点运行。

2、基本概念
2.1
- Application:指的是用户编写的Spark应用程序,包含了含有一个Driver Program和分布在集群中的多个Executor Program。
-Driver Program:运行Application的main函数并创建SparkContext,SparkContext的目的是为了准备Spark应用程序的运行环境。SparkContext负责资源的申请、任务分配和监控等。
- Executor Program:为某Application而在Worker Node上运行的一个进程,负责运行Task。每个Application都有各自独立的executors。
- Job:由Spark Action触发产生,一个Application可以包含多个Job。每个Job包含多个Stage。
- Stage:每个Job会拆分为多组Task,称为TaskSet。每组TaskStage称为Stage。
- Task:Application的运行基本单位,Executor上的工作单元。
- RDD:Spark基本计算单元,是Spark最核心的东西。主要有Transformation和Action操作。

2.2
根据Shuffle操作将Tasks划分为多个Stage。通常宽依赖对应着Shuffle操作。

这里写图片描述

  • 宽依赖
    –子 RDD 的每个分区依赖于常数个父分区(O(1))
    – 输入输出一对一的算子,且结果 RDD 的分区结构不变,主要是 map 、 flatMap
    – 输入输出一对一,但结果 RDD 的分区结构发生了变化,如 union 、 coalesce
    – 从输入中选择部分元素的算子,如 filter 、 distinct 、 subtract 、 sample
  • 窄依赖
    – 子 RDD 的每个分区依赖于所有父 RDD 分区(O(n))
    – 对单个 RDD 基于 key 进行重组和 reduce ,如 groupByKey 、 reduceByKey ;
    – 对两个 RDD 基于 key 进行 join 和重组,如 join
0 0
原创粉丝点击