Fork me on GitHub

Spark笔记3-基本概念和流程

基本概念

RDD:弹性分布式数据集,数据可大可小,动态的变化分区数量,分布式地保存在多台机器的内存当中

DAG:Directed Acyclic Graph,有向无环图,反映和RDD之间的依赖关系

Executor:运行在工作节点上进程,负责运行Task

Application:用户编写的运行程序

Task:运行在Executor上的工作单元

Job:一个Job包含多个RDD,以及作用于相应RDD上的各种操作。

Stage:Job的基本调度单位,一个job分成多个task,每组task被称为stage。

架构特点

常见的架构有两种:P2P和一主多从架构。Spark采用的是:一主多从

  • 主节点:Driver Program
  • 多个从节点:Worker Node

执行过程

应用---->主节点(任务控制节点)—>作业—>阶段(每个阶段是多个任务的集合)

运行基本流程

  • 为应用构建基本的运行环境,找到主节点Driver (指挥所)
  • 主节点创建一个Spark Context ,它被当做整个运行程序的指挥官
  • 指挥官找资源管理器(YARN、Mesos)申请资源,再进行资源的分配,从而启动Executor进程(启动Worker Node)
  • 指挥官Spark Context根据提交的代码,通过RDD的依赖关系,生成一个DAG有向无环图。应用程序就是针对RDD一次又一次的操作。
  • 将DAG图交给DAG Scheduler,将DAG图分解成多个阶段Stage。每个阶段Stage中包含多个任务task
  • Stage中任务的分发是通过Task Scheduler进行的,分发给不同的节点进行处理,分发原则:计算向数据靠拢。如果数据在机器A上,就将数据分发给机器A,实现数据的本地化处理。如果将数据分发给其他机器,会产生额外的开销。


执行完之后:

本文标题:Spark笔记3-基本概念和流程

发布时间:2019年10月23日 - 19:10

原始链接:http://www.renpeter.cn/2019/10/23/Spark%E7%AC%94%E8%AE%B03-%E5%9F%BA%E6%9C%AC%E6%A6%82%E5%BF%B5%E5%92%8C%E6%B5%81%E7%A8%8B.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

Coffee or Tea