Spark核心知识总结

一、Spark运行架构

(一)整体结构

Spark框架采用标准master - slave结构,Driver为master管理作业任务调度,Executor为slave负责实际执行任务。

(二)核心组件

  1. Driver:执行Spark任务的main方法,将用户程序转化为作业,在Executor间调度任务,跟踪Executor执行情况并通过UI展示运行状况。

  2. Executor:集群工作节点中的JVM进程,运行具体任务且任务相互独立。负责运行任务并返回结果,通过块管理器缓存RDD数据加速运算。

  3. Master & Worker:在独立部署环境中,Master负责资源调度分配和集群监控,Worker在服务器上处理计算任务。

  4. ApplicationMaster:在YARN集群中,负责申请资源、运行任务、监控任务状态和处理异常。

(三)核心概念

  1. Executor与Core:Executor是计算节点,提交应用时可指定其数量、内存大小和虚拟CPU核数。

  2. 并行度:集群并行执行任务的数量,默认由框架配置,也可在运行时修改。

  3. 有向无环图(DAG):Spark程序映射的数据流抽象模型,用于表示程序执行过程和拓扑结构。

(四)提交流程(基于Yarn环境)

  1. Yarn Client模式:Driver在本地机器运行,向ResourceManager申请启动ApplicationMaster,由其申请Executor内存并启动Executor进程,Executor反向注册后Driver执行main函数,遇到Action算子触发Job并分发任务。

  2. Yarn Cluster模式:任务提交后申请启动的ApplicationMaster就是Driver,后续流程与Client模式类似。

二、Spark RDD相关概念

(一)RDD概述

  1. 定义:弹性分布式数据集,是Spark基本数据处理模型,具有弹性、分布式、不可变等特性。

  2. 核心属性:包含分区列表、分区计算函数、依赖关系、分区器(可选)、首选位置(可选)。

(二)执行原理

在Yarn环境中,启动集群后,Spark申请资源创建调度和计算节点,将计算逻辑划分为任务,调度节点根据节点状态发送任务到计算节点执行。

(三)RDD序列化

  1. 闭包检查:检测算子外数据能否序列化,确保可在Executor端执行。

  2. 序列化方法和属性:算子外代码在Driver端执行,算子内代码在Executor端执行。

  3. Kryo序列化框架:比Java序列化速度快10倍,Shuffle时部分数据已使用Kryo序列化,但仍需继承Serializable接口。

(四)RDD依赖关系

  1. 血缘关系:记录RDD元数据和转换行为,用于恢复丢失分区。

  2. 窄依赖与宽依赖:窄依赖指父RDD分区最多被子RDD一个分区使用;宽依赖指父RDD分区被多个子RDD分区依赖,会引发Shuffle。

  3. 阶段与任务划分:DAG记录RDD转换和任务阶段,Application、Job、Stage和Task之间是1对n关系。

(五)RDD持久化

  1. Cache缓存:默认缓存在JVM堆内存,触发action算子时缓存,缓存丢失可重算。

  2. CheckPoint检查点:将RDD中间结果写入磁盘,切断血缘依赖,提高容错性。

  3. 区别:Cache不切断血缘,可靠性低;CheckPoint切断血缘,数据存储在高可用文件系统。建议对CheckPoint的RDD使用Cache缓存。

(六)RDD分区器

支持Hash分区、Range分区和自定义分区,Hash分区为默认分区。只有Key - Value类型RDD有分区器,分区器决定分区个数和数据分配。

(七)RDD文件读取与保存

可处理text、csv、sequence、object等文件格式,支持本地文件系统、HDFS、HBASE和数据库等文件系统进行数据读取和保存。

相关推荐
QYR_111 小时前
机械制造用固体润滑涂层市场分析:2032年全球市场规模预计达8.78亿元,CAGR为6.2%
大数据·人工智能·物联网
数字化顾问1 小时前
(144页PPT)数字化转型汽车企业数智化战略规划(附下载方式)
大数据
智慧物业老杨2 小时前
数字底座,重构小区治理秩序
大数据
计算机编程指导师3 小时前
【计算机毕设选题推荐】基于Hadoop的宫颈癌变进程光谱数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·数据分析·spark·毕业设计·宫颈癌变
Pniubi3 小时前
分布式锁分类讲解
分布式
guhunyihan4 小时前
无代码系统搭建平台,探索恐象 AI 带来的开发新范式
大数据·人工智能
计算机编程指导师4 小时前
【计算机毕设选题推荐】基于Hadoop+Spark的化妆品销售大数据分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·化妆品
benchmark_cc4 小时前
前复权数据每天可能变化,历史数据库应该覆盖还是保留原始价格?
大数据·python·pandas·量化交易·股票数据·quantdash
计算机编程指导师4 小时前
计算机毕设选题推荐:Hadoop大数据下的个体肥胖健康风险评估与可视化系统源码 毕业设计 毕设选题 数据分析 机器学习
大数据·hadoop·python·spark·毕业设计·课程设计·肥胖健康风险
m0_715674435 小时前
数据分类分级的范式转换:从规则匹配到场景化高准确率一键部署
大数据·网络·人工智能·网络安全