文件内容课堂总结

弹性分布式数据集(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并行执行。

相关推荐
冬奇Lab11 小时前
Workflow 系列(03):状态管理——持久化、幂等性与版本绑定
人工智能·工作流引擎
冬奇Lab12 小时前
每日一个开源项目(第146篇):openpilot - 开源自动驾驶辅助系统,曾在 Consumer Reports 评测中超过特斯拉 Autopilot
人工智能·开源·自动驾驶
吴佳浩13 小时前
AI 工程师知识地图:模型格式、框架、部署工具一次讲明白
人工智能·aigc·ai编程
IT_陈寒13 小时前
Java的Date类又坑了我一次,改用时间戳真香
前端·人工智能·后端
码农胖大海14 小时前
AI额度不够用的解决方案
人工智能
后端小肥肠14 小时前
小红书虚拟商品怎么做?我先用 Skill 跑通了壁纸品类
人工智能·aigc·agent
feiyu_gao14 小时前
从零搭建个人 AI 工作台:一个管理者的 3 个月实验
人工智能·aigc·团队管理
程序员cxuan15 小时前
一句话,让你用上 GPT-5.6
人工智能·后端·程序员
机器之心15 小时前
AI圈刚开始谈Loop Engineering,两位95后博士已经盯上了人类闭环数据
人工智能·openai