其他分享
首页 > 其他分享> > chapter4 批处理系统Spark

chapter4 批处理系统Spark

作者:互联网

目录

Spark最初的设计目标是基于内存计算的大数据批处理系统,用于构建大型的、低延迟的数据分析应用程序。

Spark从最初仅使用内存的批处理系统,转为内外存同时使用的批处理系统,增加 Spark Streaming 支持实时流计算,Structured Streaming 支持批流融合,也提供机器学习工具包 MLlib 和图处理工具包 GraphX。因而 Spark 已形成较完整的软件栈。

本章讲述的 Spark 实际上是指 Spark Core 内容。

image-20211228003501378

1 设计思想

1.1 MapReduce的局限性

  1. MapReduce仅提供map和reduce两个编程算子,编程框架的表达能力有限,用户编程复杂。
  2. 单个作业中,需要Shuffle的数据以阻塞方式传输,磁盘I/O开销大,延迟高。
    • 需要Shuffle的数据先由Map任务将计算结果写入本地磁盘,之后Reduce任务才能读取该计算结果。
  3. 多个作业之间衔接涉及I/O开销,应用程序的延迟高。
    • 特别是延迟计算,迭代中间结果的反复读写,使得整个应用程序的延迟非常高
  4. 资源管理和作业管理紧耦合。

1.2 数据模型

Spark 将数据抽象为弹性分布式数据集 RDD,具有3个特性:

1.3 计算模型

Spark提供丰富的操作算子对RDD进行变换。操作算子分为:

  1. 创建:从本地内存或外部数据源创建RDD,提供数据输入的功能。
  2. 转换 Transformation:描述RDD的转换逻辑,提供对RDD进行变换的功能。
  3. 行动 Action:标志转换结束,触发DAG生成。
    • 行动操作包含数据输出类、count、collect等操作算子
image-20211228011326425

RDD是只读的,不可变。RDD转换/行动操作会不断生成新的RDD,而不改变原有的RDD。
—— 遵循函数式编程的特性(变量值是不可变的)

为什么这样设计?
对RDD进行并行转换操作时,RDD的不变性能简化设计,也能保证容错恢复

Spark的逻辑计算模型:Operator DAG、RDD Lineage

image-20211228011823454

Spark的物理计算模型

image-20211228013655030

2 体系架构

2.1 架构图

抽象的Spark架构图,包含:集群管理器、执行器、驱动器。

  1. Cluster Manager:集群管理器,负责管理整个系统的资源,监控工作节点。
    • 根据Spark部署方式的不同,Spark可分为:
      • Standalone模式:不使用Yarn等其他资源管理系统,该模式的集群管理器包含Master、Worker
      • Yarn模式:将Spark与Yarn一起部署,该模式的集群管理器包含ResourceManager、NodeManager
  2. Executor:执行器,负责任务执行。
    • 本身是运行在工作节点上的一个进程,启动若干线程Task或线程组TaskSet执行任务
    • 在Standalone部署方式下,Executor进程名称为Coarse Grained Executor Backend
  3. Driver:驱动器,负责启动应用程序的主方法并管理作业运行。
image-20211228014503682

⚠️MapReduce中Task是进程,Spark中Task是线程。

Spark架构实现资源管理、作业管理的分离:Cluster Manager负责集群资源管理、Driver负责作业管理。

Standalone模式下Spark的架构图(没画Driver)

image-20211228021104536

Standalone中的Driver:

客户端提交应用程序时可以选择Client或Cluster。

image-20211228023113797

Spark系统

标签:Task,批处理,chapter4,Driver,RDD,DAG,Spark,Stage
来源: https://www.cnblogs.com/angelia-wang/p/15789689.html