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
下载文档到本地,方便使用
文档评分