pdf文档 Spark 简介以及与 Hadoop 的对比

172.14 KB 3 页 0 评论
语言 格式 评分
中文(简体)
.pdf
3
摘要
文档介绍了Spark作为分布式计算框架的核心概念和特性,特别是RDD(弹性分布数据集)及其在数据处理中的作用。Spark通过在内存中保存中间数据,提升了迭代计算和机器学习任务的效率。其核心操作分为转换和行动,分别以不同的方式处理数据。与Hadoop相比,Spark在速度、灵活性和容错性上具有优势,尤其适合需要快速响应和多样化数据操作的场景。RDD通过血统机制确保数据容错,并根据依赖关系(Narrow和Wide)进行高效重算,对于不同的故障场景提供了灵活的恢复策略。
AI总结
以下是对文档《Spark 简介以及与 Hadoop 的对比》的总结: --- # Spark 简介 ## 1.1 Spark 概述 Spark 是由 UC Berkeley AMP lab 开源的分布式计算框架,基于 MapReduce 算法实现,具有 Hadoop MapReduce 的优点。其核心优势在于能够将 Job 中间结果保存在内存中,从而减少磁盘 I/O 操作,特别适合迭代运算(如机器学习和数据挖掘)。 ## 1.2 Spark 核心概念 ### 1.2.1 弹性分布数据集(RDD) - RDD 是 Spark 的核心抽象,表示分区、不可变且可并行操作的数据集合。 - RDD 可以缓存到内存中,减少磁盘 I/O,提升迭代运算效率。 - RDD 必须是可序列化的,支持两种计算方式:**转换(Transformations)** 和 **操作(Actions)**。 - **转换**(如 `map`, `filter` 等)是惰性操作,只记录操作并非立即执行。 - **操作**(如 `count`, `collect` 等)会触发计算并返回结果或写入存储系统。 ### 1.2.2 血统(Lineage) - RDD 通过记录血统(Lineage)实现容错性,即记录RDD的生成和转换过程。当数据丢失时,可通过血统重新计算丢失分区。 - 数据依赖分为两种:**Narrow Dependencies**(计算高效)和 **Wide Dependencies**(计算开销大)。 ### 1.2.3 容错性 - 通过 Checkpoint 的 checkpoint data 或 logging updates 两种方式实现容错, 默认采用 logging updates,通过记录RDD血统重新计算丢失数据。 --- # Spark 与 Hadoop 对比 ## 2.1 速度 - Spark 的中间数据保存在内存中,减少磁盘 I/O,适合迭代运算(如机器学习),效率更高。 ## 2.2 灵活性 - Spark 提供丰富的数据操作类型(如 `map`, `filter`, `join` 等),支持更灵活的编程模型。 - 用户可控制中间结果的存储和分区,但 Spark 不适合异步细粒度更新的应用(如 Web 服务)。 ## 2.3 容错性 - Spark 通过 RDD 的血统关系实现容错,重新计算丢失数据,而非依赖细粒度日志备份。 --- Spark 总体上在速度、灵活性和容错性上优于 Hadoop,尤其适合迭代运算和机器学习场景,但不适合增量更新型应用。 --- 以上是文档的核心内容总结,重点突出了 Spark 的特性及其与 Hadoop 的主要区别。
P1
P2
P3
下载文档到本地,方便使用
文档评分
请文明评论,理性发言.