Spark原理与实践 | 青训营笔记

130 阅读1分钟

这是我参与「第四届青训营」笔记创作活动的的第5天

一、大数据处理引擎Spark介绍

  • 什么是Spark?

spark是一个用来实现快速,通用的集群计算平台。spark适用于各种各样原先需要多种不同的分布式平台的场景,包括批处理,迭代算法,交互式查询,流处理。通过在一个统一的框架下支持这些不同的计算,spark使我们可以简单而低耗地把各种处理流程整合在一起。

  • Spark生态和特点

image.png

下载编译

image.png

提交命令

image.png

二、SparkCore原理解析

SparkCore

image.png

RDD

image.png

创建RDD

image.png

RDD算子

image.png

RDD依赖

image.png

image.png

RDD执行流程

image.png

Scheduler

image.png

Memory Management

image.png

image.png

shuffle

image.png

image.png

image.png

三、SparkSQL 原理解析

SparkSQL

image.png

Catalyst优化器-RBD

image.png

image.png

image.png

Adaptive Query Execution(AQE)

image.png

AQE - Coalescing Shuffle Partitions

image.png

AQE - Switching Join Strategies

image.png

AQE - Optimizing Skew Joins

image.png

Runtime Filter

image.png

Bloom Runtime Filter

Codegen - Expression

image.png

Codegen - WholeStageCodegen

image.png

image.png