Logo
Section 1 / 11

简介

本课程是对Spark技术的简要介绍。

导入

简介

本课程是对Spark技术的简要介绍。

简介

Spark 是一个广泛使用的数据处理平台,已经取代了传统的 MapReduce 框架。一些技术专家甚至宣称 MapReduce 已经“死亡”。在众多基准测试和性能研究中,Spark 的表现比 MapReduce 高出数个数量级。Spark 最初于 2009 年由加州大学伯克利分校发起,次年发表了一篇关于研究成果的论文。随后,研究人员创立了 Databricks 公司,专注于基于 Spark 的机器学习与数据分析解决方案。如今,Spark 已成为处理数据的事实标准平台,适用于从批处理到交互式即席查询分析等各种应用场景。Spark 主要使用 Scala 编写,这是其默认语言,但同时也支持 Python、Java 和 R。

...

与 MapReduce 的区别

为什么 Spark 能让大数据社区放弃 MapReduce?为回答这个问题,我们来看一下 MapReduce 在哪些场景下表现不佳:

  1. 迭代任务:某些机器学习算法需要对数据集进行多次遍历以计算结果。每次遍历都可以表示为一个独立的 MapReduce 任务。然而,每个任务都需要从磁盘读取输入数据,并将输出写入磁盘供下一个任务读取。当涉及磁盘 I/O 时,相比直接从主内存访问相同数据,任务执行时间会显著增加。

  2. 交互式分析:用户可以使用 Hive 或 Pig 等工具对大规模数据集运行即席 SQL 查询。如果用户针对同一数据集发出多个查询,每个查询都可能被转换为一个 MapReduce 任务,重复从磁盘读取相同的数据并进行处理。多个 MapReduce 任务重复读取同一数据集,效率低下,导致查询延迟升高。

  3. 丰富的 API:Spark 提供了多种功能强大的 API,能够用简洁的方式表达原本在 MapReduce 中需要大量代码才能实现的操作。相比 MapReduce,使用 Spark 进行开发和编程的体验更加直观和高效。

上述前两项正是原始 Spark 论文中列出的关键问题,也是推动设计一种替代 MapReduce 的新型数据并行处理框架的主要原因。

...

Spark 保留了 MapReduce 的许多特性,如容错能力、位置感知调度和负载均衡。但 Spark 在通过将数据缓存在集群内存中实现高效重用方面表现出色,避免了昂贵的磁盘往返操作。内存访问速度始终快于磁盘访问,这正是 Spark 能够显著超越 MapReduce 的主要原因。

YARN

架构