Apache Spark是大数据领域的下一个大家伙吗?

数据库 Spark
Spark是一个基于内存in-memory数据处理平台,兼容于Hadoop 数据源但是比Hadoop MapReduce运行得快得多。.特别适合于机器学习处理。

作者观察到Apache Spark 最近发出一些不同寻常的事件,Databricks将提供$14M美金支持Spark,Cloudera决定支持Spark,Spark被认为是大数据领域的大事情。

美好的***印象

作者认为自己已经与Scala的API(Spark使用Scala编写)打交道了一段时间,说实话,起初是相当深刻的印象,因为Spark是看上去这么小而好。基本的抽象是有弹性分布式数据集(RDD),以及基本上分布的不可改变集合,可以基于本地文件定义后通过HDFS存储在Hadoop中,并提供诸如Scala风格的map foreach等函数操作。 

给人的***反应是“等等,这是基本的分布式集合吗?”Hadoop可比这多得多,分布式文件系统,特别是Map Reduce,支持各种数据格式,数据来源,单元测试,集群变种的支持等等。

当然Spark也支持更复杂的操作如joins, group-by, 或reduce-by 操作,可以建模复杂的数据流。

随着时间的推移,开始明白了Spark的简约是针对Hadoop的Java API。在Hadoop中即使最简单你的案例也有不少代码。但是从概念上说,Hadoop是很简单的,因为它仅提供了两个基本的操作,并行的mao和一个reduce操作。如果在对一些类似的分布式集合以同样的方式表达,其实只有一个更小的接口(如Scalding的一些项目实际构建这样的事情,代码看起来与SPark非常相似)。

为了说服自己,作者继续研究,发现Spark实际提供了一个不平凡的操作集RDD是Spark的基本构建块,类似分布的不可变集合。象map湖泊foreach等操作很容易并行操作,而且实现两个RDD和集合的基于一个共同Key的Join操作。也能基于一个Key使用用户定义的功能实现聚合reduce操作。

在字数统计的例子,你能map一段文本的所有文字,然后通过单词reduce他们,***总结出单词的个数。RDD能够从磁盘读取然后保持在内存中,提高了性能,这和Hadoop大部分基于磁盘的速度要快多。

有趣的是Spark容错方式。取代持久或检查点中间结果,Spark记住导致某个数据集的操作顺序(banq注:类似EventSourcing,记住导致状态的系列事件)。因此,当一个节点出现故障时,Spark会重建基于存储的数据集。他们认为,这其实并不坏,因为其他节点将帮助重建。因此,在本质上,相对于基本原始的Hadoop,Spark具有更小的接口(其中仍可能成为未来同样臃肿),但也有很多项目在Hadoop之上(比如Twitter的Scalding,),它实现了一个类似的水平表现力。其它主要区别在于,Spark是默认情况下在内存,这自然导致了性能改善,并且甚至允许运行的迭代算法。Spark没有内置的迭代支持,不过,这只是他们声称它是如此之快,你可以运行迭代,如果你想

Spark还带有一个数据流处理模式,这是一个文件,该文件概述了设计是相当不错。Spark因此与Twitter的Storm框架不同之处。Storm基本上是一个管道,你推入独立的事件,然后得到以分布式方式的处理结果。相反,Spark那里事件是收集的,然后在很短的时间间隔内(假设每5秒)以批处理方式处理。所收集的数据成为自己一个RDD,然后使用通常的一套Spark应用进行处理。

这种模式是对慢节点和容错更健壮,同时又有5秒的时间间隔通常是足够快于大多数应用。我不是很确定这一点,因为分布式计算总是非常复杂的,这种方法使用非实时流部分很好地统一了实时流处理,这当然是正确的。

由于RDD的不可变性,如果你需要对一些数据项目进行少量改变,你得自己做一个整个数据集的拷贝,这可以使用并行完成,但是当然也是有成本的,基于Copy-on-write的实现也许在这里更有效,但是如今还没有实现。

原文链接:http://www.jdon.com/46098

责任编辑:彭凡 来源: jdon网
相关推荐

2014-03-31 13:47:35

IT技术周刊

2022-02-28 00:14:30

人工智能数据机器学习

2015-07-28 11:22:30

大数据浪潮

2018-05-13 09:45:53

共享经济

2024-01-29 19:33:21

增强分析数据分析

2015-10-19 10:11:00

2014-06-16 09:11:29

快数据大数据

2012-09-19 14:25:52

苹果大型数据中心

2014-08-15 10:34:42

快数据大数据

2017-02-19 15:09:47

深度学习机器阅读

2011-09-22 09:52:31

2015-09-14 13:57:22

大数据科技革命

2012-12-26 10:08:24

2023-07-26 10:03:53

2022-02-24 11:46:38

区块链技术NFT

2022-02-13 15:49:15

WebAssemblKubernetes容器

2009-03-28 09:22:12

MID移动OS

2013-03-15 09:57:00

虚拟化 数据中心

2022-04-13 14:23:53

物联网网络安全数据

2022-09-16 10:25:30

僵尸网络物联网安全网络安全
点赞
收藏

51CTO技术栈公众号