首页 理论教育 Spark的特点及优势

Spark的特点及优势

时间:2023-06-21 理论教育 版权反馈
【摘要】:Spark之所以受关注,是因为其有与其他大数据平台不同的特点,主要如下。Spark允许传统Hadoop集群中的应用程序在内存中以100倍的速度运行,即使在磁盘上运行也能加快10倍。Spark通过减少磁盘I/O来达到性能的提升,它们将中间的处理数据全部放到了内存中。与2014年6月相比,2015年Spark代码行数增加了近三倍[3],这是个惊人的增长。

Spark的特点及优势

Spark之所以受关注,是因为其有与其他大数据平台不同的特点,主要如下。

1.轻量级快速处理

数据处理中,速度往往被置于第一位,所以迫切需要能尽快处理数据的工具。Spark允许传统Hadoop集群中的应用程序在内存中以100倍的速度运行,即使在磁盘上运行也能加快10倍。Spark通过减少磁盘I/O来达到性能的提升,它们将中间的处理数据全部放到了内存中。Spark使用RDD进行数据抽象,以允许在内存中存储数据,只在需要时才持久化到磁盘。这种做法大大地减少了数据处理过程中磁盘的读写,大幅度地降低了运行时间。

2.易于使用

Spark支持多种语言,包括Java、Scala、Python及R(Spark1.4版支持),这允许更多的开发者在自己熟悉的语言环境下进行工作,扩大了Spark的应用范围。它自带80多个高级操作符,允许在shell中进行交互式查询。多种使用模式的特点使应用更灵活。

3.支持复杂查询

除了简单的map及reduce操作之外,Spark还支持filter、foreach、reduceByKey、aggregate以及SQL查询、流式查询等复杂查询。Spark更为强大之处是用户可以在同一个工作流中无缝的搭配这些功能,例如Spark可以通过SparkStreaming(1.2.2小节有详细介绍)获取流数据,然后对流数据进行实时SQL查询或使用MLlib库进行系统推荐,而且这些业务的集成并不复杂,因为它们都基于RDD这一抽象数据集在不同业务过程中进行转换,转换代价小,体现了统一引擎解决不同类型工作场景的特点。

有关Streaming技术以及MLlib库和RDD将会在之后的章节详述。

4.实时的流处理(Spark Streaming(www.xing528.com)

对比MapReduce只能处理离线数据,Spark还能支持实时流计算。Spark Streaming主要用来对数据进行实时处理,当然在YARN[7]之后Hadoop也可以借助其他的工具进行流式计算。对于Spark Streaming,著名的大数据产品开发公司Cloudera的评价如下。

1)简单、轻量且具备功能强大的API,Spark Streaming允许开发者快速开发流应用程序。

2)容错能力强,对比其他的流解决方案,比如使用Storm需要额外的配置,而Spark无须额外的代码和配置,直接使用其上层应用框架Spark Streaming就可以做大量的恢复和交付工作,让Spark的流计算更加适应不同的需求。

3)集成性好,为流处理和批处理重用了同样的代码,甚至可以将流数据保存到历史数据中(如HDFS)。

5.与已存Hadoop数据整合

Spark不仅可以独立的运行(使用Standalone模式),还可以运行在当下的YARN管理集群中。Spark可以读取已有的Hadoop数据,这是一个非常大的优势,也可以运行在任何Hadoop数据源上,比如HBase、HDFS等。这个特性可以让用户可以轻易地迁移已有的Hadoop应用。

6.活跃的社区

Spark起源于2009年,当下已有超过50个机构730个工程师贡献过代码。与2014年6月相比,2015年Spark代码行数增加了近三倍[3],这是个惊人的增长。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈