文件内容课堂总结

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

相关推荐
喵手1 分钟前
AI在自动化与机器人技术中的前沿应用
人工智能·机器人·自动化
一只乔哇噻19 分钟前
java后端工程师+AI大模型进修ing(研一版‖day55)
人工智能
小毅&Nora1 小时前
【AI微服务】【Spring AI Alibaba】② Agent 深度实战:构建可记忆、可拦截、可流式的智能体系统
人工智能·微服务·spring-ai
陈天伟教授1 小时前
基于学习的人工智能(7)机器学习基本框架
人工智能·学习
千里念行客2402 小时前
昂瑞微正式启动科创板IPO发行
人工智能·科技·信息与通信·射频工程
撸码猿2 小时前
《Python AI入门》第10章 拥抱AIGC——OpenAI API调用与Prompt工程实战
人工智能·python·aigc
双翌视觉3 小时前
双翌全自动影像测量仪:以微米精度打造智能化制造
人工智能·机器学习·制造
编程小白_正在努力中3 小时前
神经网络深度解析:从神经元到深度学习的进化之路
人工智能·深度学习·神经网络·机器学习
无风听海3 小时前
神经网络之经验风险最小化
人工智能·深度学习·神经网络
音视频牛哥3 小时前
轻量级RTSP服务的工程化设计与应用:从移动端到边缘设备的实时媒体架构
人工智能·计算机视觉·音视频·音视频开发·rtsp播放器·安卓rtsp服务器·安卓实现ipc功能