前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Spark适用场景以及与Hadoop MapReduce优势对比

Spark适用场景以及与Hadoop MapReduce优势对比

作者头像
加米谷大数据
发布于 2018-06-04 09:21:41
发布于 2018-06-04 09:21:41
3.9K0
举报
文章被收录于专栏:加米谷大数据加米谷大数据

Spark的适用场景

大数据处理需求来看,大数据的业务大概可以分为以下三类 :

(1)复杂的批量数据处理,通常的时间跨度在数十分钟到数小时之间。

(2)基于历史数据的交互式查询,通常的时间跨度在数十秒到数分钟之间。

(3)基于实时数据流的数据处理,通常的时间跨度在数百毫秒到数秒之间。

目前已有很多相对成熟的开源和商业软件来处理以上三种情景 :第一种业务,可以利用 MapReduce 来进行批量数据处理 ;第二种业务,可以用 Impala 来进行交互式查询 ;对于第三种流式数据处理,可以想到专业的流数据处理工具 Storm。但是这里有一个很重要的问题 :对于大多数互联网公司来说,一般会同时遇到以上三种情景,如果采用不同的处理技术来面对这三种情景,那么这三种情景的输入/ 输出数据无法无缝共享,它们之间可能需要进行格式转换,并且每个开源软件都需要一支开发和维护团队,从而提高了成本。另外一个不便之处就是,在同一个集群中对各个系统协调资源分配比较困难。

那么,有没有一种软件可以同时处理以上三种情景呢? Spark 就可以,或者说有这样的潜力。Spark 同时支持复杂的批处理、互操作和流计算,而且兼容支持HDFS 和 Amazon S3 等分布式文件系统,可以部署在 YARN 和 Mesos 等流行的集群资源管理器上。

从 Spark 的设计理念(基于内存的迭代计算框架)出发,其最适合有迭代运算的或者需要多次操作特定数据集的应用场合。并且迭代次数越多,读取的数据量越大,Spark 的应用效果就越明显。因此,对于机器学习之类的“迭代式”应用,Spark 可谓拿手好戏,要比 Hadoop MapReduce 快数十倍。另外,Spark Streaming因为内存存储中间数据的特性,处理速度非常快,也可以应用于需要实时处理大数据的场合。

当然,Spark 也有不适用的场合。对于那种异步细粒度更新状态的应用,例如 Web 服务的存储或增量的 Web 爬虫和索引,也就是对于那种增量修改的应用模型不适合。Spark 也不适合做超级大的数据量的处理,这里所说的“超级大”是相对于这个集群的内存容量而言的,因为 Spark 要将数据存储在内存中。一般来说,10TB 以上(单次分析)的数据就可以算是“超级大”的数据了。

一般来说,对于中小企业的数据中心而言,在单次计算的数据量不大的情况下,Spark 都是很好的选择。另外,Spark 也不适合应用于混合的云计算平台,因为混合的云计算平台的网络传输是很大的问题,即便有专属的宽带在云端 Cluster 和本地 Cluster 之间传输数据,相比内存读取速度来说,依然不低。

Spark与Hadoop MapReduce在业界有两种说法 :一是 Spark 将代替 Hadoop MapReduce,成为未来大数据处理发展的方向 ;二是 Spark 将会和 Hadoop 结合,形成更大的生态圈。其实 Spark 和 Hadoop MapReduce 的重点应用场合有所不同。相对于 Hadoop MapReduce 来说,Spark 有点“青出于蓝”的感觉,Spark 是在Hadoop MapReduce 模型上发展起来的,在它的身上我们能明显看到 MapReduce的影子,所有的 Spark 并非从头创新,而是站在了巨人“MapReduce”的肩膀上。千秋功罪,留于日后评说,我们暂且搁下争议,来看看相比 Hadoop MapReduce,Spark 都有哪些优势。

1

计算速度快

大数据处理首先追求的是速度。Spark 到底有多快?用官方的话说,“Spark 允许 Hadoop 集群中的应用程序在内存中以 100 倍的速度运行,即使在磁盘上运行也能快 10 倍”。可能有的读者看到这里会大为感叹,的确如此,在有迭代计算的领域,Spark 的计算速度远远超过 MapReduce,并且迭代次数越多,Spark 的优势越明显。这是因为 Spark 很好地利用了目前服务器内存越来越大这一优点,通过减少磁盘 I/O 来达到性能提升。它们将中间处理数据全部放到了内存中,仅在必要时才批量存入硬盘中。或许读者会问 :如果应用程序特别大,内存能放下多少 GB ?答曰 :什么? GB ?目前 IBM 服务器内存已经扩展至几 TB 了。

2

应用灵活,上手容易

知道 AMPLab 的 Lester 为什么放弃 MapReduce 吗?因为他需要把很多精力放到Map和Reduce的编程模型上,极为不便。 Spark在简单的Map及Reduce操作之外,还支持 SQL 查询、流式查询及复杂查询,比如开箱即用的机器学习算法。同时,用户可以在同一个工作流中无缝地搭配这些能力,应用十分灵活。

Spark 核心部分的代码为 63 个 Scala 文件,非常的轻量级。并且允许 Java、Scala、Python 开发者在自己熟悉的语言环境下进行工作,通过建立在 Java、Scala、Python、SQL(应对交互式查询)的标准 API 以方便各行各业使用,同时还包括大量开箱即用的机器学习库。它自带 80 多个高等级操作符,允许在 Shell中进行交互式查询。即使是新手,也能轻松上手应用。

3

兼容竞争对手

Spark 可以独立运行,除了可以运行在当下的 YARN 集群管理外,还可以读取已有的任何 Hadoop 数据。它可以运行在任何 Hadoop 数据源上,比如 HBase、HDFS 等。有了这个特性,让那些想从 Hadoop 应用迁移到 Spark 上的用户方便了很多。Spark 有兼容竞争对手的胸襟,何愁大事不成?

3

实时处理性能非凡

MapReduce 更 加 适 合 处 理 离 线 数 据( 当 然, 在 YARN 之 后,Hadoop 也可以借助其他工具进行流式计算)。Spark 很好地支持实时的流计算,依赖Spark Streaming 对数据进行实时处理。Spark Streaming 具备功能强大的 API,允许用户快速开发流应用程序。而且不像其他的流解决方案,比如 Storm,Spark Streaming 无须额外的代码和配置,就可以做大量的恢复和交付工作。

5

社区贡献力量巨大

从 Spark 的版本演化来看,足以说明这个平台旺盛的生命力及社区的活跃度。尤其自 2013 年以来,Spark 一度进入高速发展期,代码库提交与社区活跃度都有显著增长。以活跃度论,Spark 在所有的 Apache 基金会开源项目中位列前三,相较于其他大数据平台或框架而言,Spark 的代码库最为活跃。

Spark 非常重视社区活动,组织也极为规范,会定期或不定期地举行与 Spark相关的会议。会议分为两种 :一种是 Spark Summit,影响力极大,可谓全球 Spark顶尖技术人员的峰会,目前已于 2013—2015 年在 San Francisco 连续召开了三届Summit 大会 ;另一种是 Spark 社区不定期地在全球各地召开的小型 Meetup 活动。Spark Meetup 也会在我国的一些大城市定期召开,比如北京、深圳、西安等地。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-05-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 加米谷大数据 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Spark对比Hadoop MapReduce 的优势
与Hadoop MapReduce相比,Spark的优势如下: ❑ 中间结果:基于MapReduce的计算引擎通常将中间结果输出到磁盘上,以达到存储和容错的目的。由于任务管道承接的缘故,一切查询操作都会产生很多串联的Stage,这些Stage输出的中间结果存储于HDFS。而Spark将执行操作抽象为通用的有向无环图(DAG),可以将多个Stage的任务串联或者并行执行,而无须将Stage中间结果输出到HDFS中。 ❑ 执行策略:MapReduce在数据Shuffle之前,需要花费大量时间来排序,而Spar
Albert陈凯
2018/04/04
1.1K0
Spark的适用场景
从Spark的设计理念(基于内存的迭代计算框架)出发,其最适合有迭代运算的或者需要多次操作特定数据集的应用场合。并且迭代次数越多,读取的数据量越大,Spark的应用效果就越明显。
加米谷大数据
2019/06/05
3.9K0
Spark的适用场景
对比Hadoop和 Spark,看大数据框架进化之路
说到大数据,就不得不说Hadoop和 Spark,Hadoop和 Spark作为大数据当前使用最广泛的两种框架,是如何发展的,今天我们就追根溯源,和大家一起了解一下Hadoop和 Spark的过去和未来;在Hadoop出现之前,人们采用的是典型的高性能 HPC workflow,它有专门负责计算的compute cluster,cluster memory很小,所以计算产生的任何数据会存储在storage中,最后在Tape里进行备份,这种workflow主要适用高速大规模复杂计算,像核物理模拟中会用到。
用户7353950
2023/02/23
7700
对比Hadoop和 Spark,看大数据框架进化之路
Hadoop和Spark的异同
解决问题的层面不一样 Hadoop实质上是解决大数据大到无法在一台计算机上进行存储、无法在要求的时间内进行处理的问题,是一个分布式数据基础设施。 HDFS,它将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,通过将块保存到多个副本上,提供高可靠的文件存储。 MapReduce,通过简单的Mapper和Reducer的抽象提供一个编程模型,可以在一个由几十台上百台的机器上并发地分布式处理大量数据集,而把并发、分布式和故障恢复等细节隐藏。 Hadoop复杂的数据处理需要分解为多个Job(包含一
企鹅号小编
2018/01/16
9430
Hadoop和Spark的异同
大数据平台的比较和选择:Hadoop、Spark和Flink的优缺点与适用场景
在大数据处理领域,选择合适的大数据平台是确保数据处理效率和性能的关键。Hadoop、Spark和Flink是三个备受关注的大数据处理框架,本文将深入比较它们的优缺点,并为读者提供在不同场景下的选择建议。
Echo_Wish
2024/02/01
4.4K0
大数据技术原理与应用之【Spark】习题
①Spark的计算模式也属于MapReduce,但不局限于Map和Reduce操作,还提供了多种数据集操作类型,编程模型比MapReduce更灵活;
大数据梦想家
2021/01/26
1.6K0
大数据技术原理与应用之【Spark】习题
Storm与Spark、Hadoop三种框架对比
Storm与Spark、Hadoop这三种框架,各有各的优点,每个框架都有自己的最佳应用场景。所以,在不同的应用场景下,应该选择不同的框架。 1.Storm是最佳的流式计算框架,Storm由Java和Clojure写成,Storm的优点是全内存计算,所以它的定位是分布式实时计算系统,按照Storm作者的说法,Storm对于实时计算的意义类似于Hadoop对于批处理的意义。 Storm的适用场景: 1)流数据处理 Storm可以用来处理源源不断流进来的消息,处理之后将结果写入到某个存储中去。 2)分布式RPC。由于Storm的处理组件是分布式的,而且处理延迟极低,所以可以作为一个通用的分布式RPC框架来使用。 2.Spark是一个基于内存计算的开源集群计算系统,目的是更快速的进行数据分析。Spark由加州伯克利大学AMP实验室Matei为主的小团队使用Scala开发,类似于Hadoop MapReduce的通用并行计算框架,Spark基于Map Reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点,但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的Map Reduce的算法。 Spark的适用场景: 1)多次操作特定数据集的应用场合 Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小。 2)粗粒度更新状态的应用 由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如Web服务的存储或者是增量的Web爬虫和索引。就是对于那种增量修改的应用模型不适合。 总的来说Spark的适用面比较广泛且比较通用。 3.Hadoop是实现了MapReduce的思想,将数据切片计算来处理大量的离线数据。Hadoop处理的数据必须是已经存放在HDFS上或者类似HBase的数据库中,所以Hadoop实现的时候是通过移动计算到这些存放数据的机器上来提高效率。 Hadoop的适用场景: 1)海量数据的离线分析处理 2)大规模Web信息搜索 3)数据密集型并行计算 简单来说: Hadoop适合于离线的批量数据处理适用于对实时性要求极低的场景 Storm适合于实时流数据处理,实时性方面做得极好 Spark是内存分布式计算框架,试图吞并Hadoop的Map-Reduce批处理框架和Storm的流处理框架,但是Spark已经做得很不错了,批处理方面性能优于Map-Reduce,但是流处理目前还是弱于Storm,产品仍在改进之中
zhangjiqun
2024/12/17
3610
Storm与Spark、Hadoop三种框架对比
原 Spark简介及完全分布式安装
Spark简介及完全分布式安装 一、Spark介绍     官方介绍:      Apache Spark™ is a fast and general engine for large-scale data processing. Spark Introduce     Run programs up to 100x faster than Hadoop MapReduce in memory, or 10x faster on disk.     Apache Spark has an advanced
云飞扬
2018/05/17
7190
Storm与Spark、Hadoop三种框架对比
Storm与Spark、Hadoop这三种框架,各有各的优点,每个框架都有自己的最佳应用场景。所以,在不同的应用场景下,应该选择不同的框架。
用户2292346
2018/12/07
2.4K0
Storm与Spark、Hadoop三种框架对比
浅谈Apache Spark的6个发光点
【编者按】Spark是一个基于内存计算的开源集群计算系统,目的是更快速的进行数据分析。Spark由加州伯克利大学AMP实验室Matei为主的小团队使用Scala开发开发,其核心部分的代码只有63个Scala文件,非常轻量级。 Spark 提供了与 Hadoop 相似的开源集群计算环境,但基于内存和迭代优化的设计,Spark 在某些工作负载表现更优秀。 在2014上半年,Spark开源生态系统得到了大幅增长,已成为大数据领域最活跃的开源项目之一,当下已活跃在Hortonworks、IBM、Cloudera、M
CSDN技术头条
2018/02/07
6430
浅谈Apache Spark的6个发光点
Spark笔记1-入门Hadoop
spark(2009年)是一个单纯的计算框架,比MapReduce更佳,取而代之,本身不具备存储能力。火的原因:社区好、企业支持早
皮大大
2021/03/02
3860
Spark与Hadoop的区别是什么?请举例说明。
Spark与Hadoop是两个在大数据处理领域广泛使用的框架,它们有一些重要的区别。在本文中,我将详细解释Spark与Hadoop的区别,并通过一个具体的案例来说明这些区别。
GeekLiHua
2025/01/21
1660
互联网十万个为什么之什么是Apache Spark
Apache Spark是一个开源计算框架,专门设计用于大规模数据处理和分析。它提供了一个高效的、基于内存计算的引擎,能够比传统的大数据处理框架更快地处理大数据集。Spark拥有灵活的数据处理能力,并支持多种编程语言如Scala、Java、Python和R。它包含了多种功能,如批处理、实时流处理、机器学习、图形处理和SQL查询处理等,让它成为解决多样化的大数据挑战和建设复杂的数据管道的理想选择。
linus_lin
2024/11/01
1950
互联网十万个为什么之什么是Apache Spark
Spark:超越Hadoop MapReduce
大数据对一些数据科学团队来说是主要的挑战,因为在要求的可扩展性方面单机没有能力和容量来运行大规模数据处理。此外,即使专为大数据设计的系统,如 Hadoop,由于一些数据的属性问题也很难有效地处理图数据,我们将在本章的其他部分看到这方面的内容。
博文视点Broadview
2020/06/11
5620
与 Hadoop 对比,大厂技术栈们是如何看待 Spark 技术?
首先看一下Hadoop解决了什么问题,Hadoop就是解决了大数据(大到一台计算机无法进行存储,一台计算机无法在要求的时间内进行处理)的可靠存储和处理。
TASKCTL 任务调度平台
2021/03/03
7320
与 Hadoop 对比,大厂技术栈们是如何看待 Spark 技术?
腾讯大数据之计算新贵Spark
前言 Spark作为Apache顶级的开源项目,项目主页见http://spark.apache.org。在迭代计算,交互式查询计算以及批量流计算方面都有相关的子项目,如Shark,Spark Streaming,MLbase,GraphX,SparkR等。从13年起Spark开始举行了自已的Spark Summit会议,会议网址见http://spark-summit.org。Amplab实验室单独成立了独立公司Databricks来支持Spark的研发。 为了满足挖掘分析与交互式实时查询
腾讯大数据
2018/01/26
1.2K0
盘点大数据生态圈,那些繁花似锦的开源项目
随着互联网和移动互联网的发展,时下我们正处在一个大数据的时代。在数据金山的诱惑下,各个机构纷纷开始探索从数据中提取洞见并指导实践的可能。而在这个需求的刺激下,在过去数年,大数据开源生态圈得到了长足的发展——在数据的整个生命周期中,从收集到处理,一直到数据可视化和储存,各种开源技术框架林立。 以这些开源技术为基石,业内涌现出一系列令人敬佩的大数据架构实践,而《程序员》电子刊9月B大数据实战与技术专题则摘录了电商、金融、游戏等行业的大数据应用,并覆盖了当下热门的大数据开源技术实践与技术细节,如Hadoop、Sp
CSDN技术头条
2018/02/09
8060
盘点大数据生态圈,那些繁花似锦的开源项目
Apache Spark 核心原理、应用场景及整合到Spring Boot
Apache Spark 是一种开源的大数据处理框架,它在2009年由加州大学伯克利分校的AMPLab开发,并在2010年贡献给了Apache软件基金会。Spark以其高性能、易用性和广泛的应用场景而在大数据处理领域获得了极高的评价,它可以高效地处理大规模数据集,并支持批处理、交互式查询、流处理和机器学习等多种计算范式。
用户7353950
2024/05/10
1.6K0
Apache Spark 核心原理、应用场景及整合到Spring Boot
【Spark研究】用Apache Spark进行大数据处理之入门介绍
什么是Spark Apache Spark是一个围绕速度、易用性和复杂分析构建的大数据处理框架。最初在2009年由加州大学伯克利分校的AMPLab开发,并于2010年成为Apache的开源项目之一。 与Hadoop和Storm等其他大数据和MapReduce技术相比,Spark有如下优势。 首先,Spark为我们提供了一个全面、统一的框架用于管理各种有着不同性质(文本数据、图表数据等)的数据集和数据源(批量数据或实时的流数据)的大数据处理的需求。将Hadoop集群的中的应用在内出中运行速度提升100倍,甚至
陆勤_数据人网
2018/02/27
2K0
【Spark研究】用Apache Spark进行大数据处理之入门介绍
独家 | 一文读懂大数据处理框架
前言 说起大数据处理,一切都起源于Google公司的经典论文:《MapReduce:Simplied Data Processing on Large Clusters》。在当时(2000年左右),由于网页数量急剧增加,Google公司内部平时要编写很多的程序来处理大量的原始数据:爬虫爬到的网页、网页请求日志;计算各种类型的派生数据:倒排索引、网页的各种图结构等等。这些计算在概念上很容易理解,但由于输入数据量很大,单机难以处理。所以需要利用分布式的方式完成计算,并且需要考虑如何进行并行计算、分配数据
数据派THU
2018/01/29
1.7K0
独家 | 一文读懂大数据处理框架
推荐阅读
相关推荐
Spark对比Hadoop MapReduce 的优势
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档