文件内容课堂总结


弹性分布式数据集(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. 代码实现:  
读取文件→分词→映射为键值对→聚合统计→输出结果。  
3. 日志配置:通过log4j.properties减少日志输出干扰。  
4. 常见问题: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并行执行。  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值