1

SPARK算子

 

 

 

 

 

 

 

1. SPARK架构


我们往往采用Spark On Yarn模式, 那么 无需spark开启
master和slaver进程分别由yarn的 Rourcemanager和Nodemanager担当.
Driver 角色运行在yarn容器中或者客户端.

资源管理由resourceManger承担.
任务计算由Container来承担.



 
1.客户端提交应用程序 ,提交给 ResourceManager.
2.ResourceManager  会启动一个 ApplicationMaster 构建在Node_manager节点的容器中.
3.AM 会启动一个 Driver线程,DRIVER 会构建sparkcontext对象,执行提交的应用。



Driver

Driver 是运行 Spark Application 的进程,它负责创建 SparkSession 和 SparkContext 对象,并将代码转换为转换和操作操作。它还负责创建逻辑和物理计划,并与集群管理器协调调度任务。

简而言之,Spark Application 是使用 Spark API 编写的程序,而 Spark Driver 是负责运行该程序并与集群管理器协调的进程。

可以将Driver 理解为运行 Spark Application main 方法的进程。

 

SPARK 开发 基础

返回值是RDD的就是转换算子  转换算子在构建执行计划
返回值不是RDD的就是行动算子.
转换算子是懒加载的,只有遇到action算子才会执行.


1. map算子
rdd的数据一条条处理.

2. flatmap算子 对rdd执行map 操作然后解除嵌套操作.

3. reducebykey


ACTION 算子

将RDD各个分区的数据 统一收集到driver中,形成一个list对象.

GROUPBYKEY 和 reduceBykey 的区别
reducebykey 的性能要优于 groupby ,
reduceBykey = groupbykey+聚合逻辑.
1. 先在分区内预聚合.
2. 然后在周分组流程shuffle
3. 分组后在做最终聚合.

---

一个ACTION 会产生一个 DAG图.
一个ACTION 会产生一个 JOB.每个job 有自己的 DAG有向无环图.

1个action = 1个dag = 1个job
一个代码运行起来 在spark中称为 application.





首先说明下Spark里的几个概念。一个Spark应用程序包括Job、Stage以及Task三个概念:
1)Job是以Action方法为界,遇到一个Action方法则触发一个Job;
2)Stage是Job的子集,以RDD宽依赖(即Shuffle)为界,遇到Shuffle做一次划分;
3)Task是Stage的子集,以并行度(分区数)来衡量,分区数是多少,则有多少个task。
Spark的任务调度总体来说分两路进行,一路是Stage级的调度,一路是Task级的调度,总

------
窄依赖: 一个父RDD分区全部数据给 子RDD一个分区.
宽依赖:一个父RDD分区数据给多个子RDD的多个分区.

宽依赖又称为Shuffle.

stage是基于宽依赖划分的 ,遇到宽依赖就划分出一个阶段stage.
在stage内部一定是窄依赖.

 


   SPARK 优化 

 

1.谓词下推(行过滤) 提前执行where条件。

2.列值裁剪(列过滤) 提前规划 select 字段数量
 
3. AQE (自适应查询执行) 是对spark执行计划的优化.动态修改spark执行计划.
  1. 自动调整shuffle分区数量.
     默认分区数量为 200 ,如果不太大的文件开启200个分区可能执行一分钟,如果开启10个分区也就20秒.
     语法格式:  spark.sql.adaptive.enable= ture   另外默认基于数据大小 64M做为切分的阈值.
    
  2. 动态调整join策略

 


4.动态分区裁剪.



catalyst优化器

API--> catalyst--> RDD --> cluster



HASHSHUFFLEMANAGER

 
SORTSHUFFLEMANAGER



1AQE  




like data lake for  raw data and  
data warehouses for structured data.

with the processed data , BI tools create  data  dashboards  and visualizations .

and also the processed data for  data analysis and data science scientist



datalake  datawarehouse   lakehouse


 

posted @ 2024-07-09 13:49  萌哥-爱学习  阅读(4)  评论(0编辑  收藏  举报