文件内容课堂总结

弹性分布式数据集(RDD):Spark核心数据处理模型,具备弹性、不可变、可分区、并行计算特性。

弹性:存储(内存/磁盘切换)、容错(自动恢复)、计算(重试机制)、分片(动态调整)。

分区列表:实现分布式并行计算。

分区函数:每个分区的计算逻辑。

依赖关系:父子RDD间的依赖(窄依赖、宽依赖)。

分区器(可选):决定数据分布(Hash分区、Range分区)。

首选位置(可选):优化计算节点选择。

执行原理

Spark在Yarn环境中通过资源申请、任务分解、调度执行完成计算,RDD封装逻辑并生成Task发送给Executor。

序列化

闭包检查:确保算子外数据可序列化传输到Executor。

Kryo框架:高效序列化,性能优于Java序列化。

依赖关系

血缘关系(Lineage):记录RDD转换历史,用于容错恢复。

窄依赖:父分区仅被子分区一对一依赖(如map)。

宽依赖:父分区被子分区多对多依赖(如reduceByKey),触发Shuffle。

阶段划分:基于宽依赖将任务划分为Stage,形成DAG。

持久化

缓存(Cache/Persist):数据暂存内存/磁盘,血缘保留,可重复使用。

检查点(Checkpoint):数据持久化到HDFS,切断血缘,高可靠。

文件读写

支持text、sequence、object等格式,可对接本地文件系统、HDFS、HBase等。

WordCount示例

  1. Maven项目配置:添加spark-core依赖,配置Scala编译插件。

  2. 代码实现:

读取文件→分词→映射为键值对→聚合统计→输出结果。

  1. 日志配置:通过log4j.properties减少日志输出干扰。

  2. 常见问题:Windows环境下需配置HADOOP_HOME解决Hadoop依赖问题。

RDD创建方式

  1. 内存集合:parallelize或makeRDD(底层相同)。

  2. 外部文件:textFile读取本地或HDFS文件。

  3. 其他RDD转换:通过算子生成新RDD。

  4. 直接创建:框架内部使用。

并行度与分区

并行度:由分区数决定,可通过参数指定(如makeRDD(list, numPartitions))。

分区规则:

内存数据:按元素数均匀分配。

文件数据:遵循Hadoop切片规则(如textFile的第二个参数)。

Spark运行架构

核心组件

Driver:执行main方法,负责作业调度、任务分发、状态跟踪。

Executor:Worker节点的JVM进程,运行Task并缓存RDD数据。

Master/Worker:独立部署时,Master管理资源,Worker执行任务。

ApplicationMaster:Yarn中协调资源申请与任务调度。

核心概念

并行度:同时执行的任务数,影响计算效率。

DAG(有向无环图):表示任务执行流程,按宽依赖划分Stage。

提交流程(Yarn模式)

Client模式:

Driver在本地运行,适合测试。

流程:Driver→申请资源→启动ApplicationMaster→启动Executor→执行任务。

Cluster模式:

Driver在集群中运行,适合生产。

流程:ApplicationMaster(即Driver)直接管理资源与任务。

执行流程

  1. Action触发Job,按宽依赖划分Stage。

  2. 生成TaskSet,分发到Executor并行执行。

相关推荐
共享家95273 分钟前
Vibe Coding 与 LangChain、LangGraph 的协同进化
人工智能
dvlinker5 分钟前
2026远程桌面安全白皮书:ToDesk/TeamViewer/向日葵核心安全性与合规性横向测评
人工智能
2的n次方_6 分钟前
CANN ascend-transformer-boost 深度解析:针对大模型的高性能融合算子库与算力优化机制
人工智能·深度学习·transformer
熊猫_豆豆7 分钟前
YOLOP车道检测
人工智能·python·算法
nimadan128 分钟前
**热门短剧小说扫榜工具2025推荐,精准捕捉爆款趋势与流量
人工智能·python
qq_124987075311 分钟前
基于JavaWeb的大学生房屋租赁系统(源码+论文+部署+安装)
java·数据库·人工智能·spring boot·计算机视觉·毕业设计·计算机毕业设计
杜子不疼.12 分钟前
CANN算子基础框架库opbase的算子开发与扩展机制深度解析
人工智能
程序猿追13 分钟前
CANN ops-math仓库解读 数学算子的底层支撑与高性能实现
人工智能·架构
结局无敌13 分钟前
统一算子语言:cann/ops-nn 如何为异构AI世界建立通用“方言”
人工智能·cann
杜子不疼.20 分钟前
CANN计算机视觉算子库ops-cv的图像处理与特征提取优化实践
图像处理·人工智能·计算机视觉