文件内容课堂总结

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

相关推荐
风筝超冷36 分钟前
Seq2Seq - 编码器(Encoder)和解码器(Decoder)
人工智能·深度学习·seq2seq
uncle_ll38 分钟前
李宏毅NLP-3-语音识别part2-LAS
人工智能·自然语言处理·语音识别·las
helloworld工程师41 分钟前
Spring AI应用:利用DeepSeek+嵌入模型+Milvus向量数据库实现检索增强生成--RAG应用(超详细)
人工智能·spring·milvus
終不似少年遊*3 小时前
【NLP解析】多头注意力+掩码机制+位置编码:Transformer三大核心技术详解
人工智能·自然语言处理·大模型·nlp·transformer·注意力机制
清岚_lxn5 小时前
原生SSE实现AI智能问答+Vue3前端打字机流效果
前端·javascript·人工智能·vue·ai问答
_一条咸鱼_7 小时前
大厂AI 大模型面试:注意力机制原理深度剖析
人工智能·深度学习·机器学习
FIT2CLOUD飞致云7 小时前
四月月报丨MaxKB正在被能源、交通、金属矿产等行业企业广泛采纳
人工智能·开源
_一条咸鱼_7 小时前
大厂AI大模型面试:泛化能力原理
人工智能·深度学习·机器学习
Amor风信子8 小时前
【大模型微调】如何解决llamaFactory微调效果与vllm部署效果不一致如何解决
人工智能·学习·vllm
Jamence8 小时前
多模态大语言模型arxiv论文略读(十五)
人工智能·语言模型·自然语言处理