1.3 简单、优雅、有效———这就是Spark
Apache Spark是加州大学伯克利分校的AMPLabs开发的开源分布式轻量级通用计算框架。与传统的数据分析框架相比,Spark在设计之初就是基于内存而设计的,因此比一般的数据分析框架具有更高的处理性能,并且对多种编程语言(例如Java、Scala及Python等)提供编译支持,使得用户使用传统的编程语言即可进行程序设计,从而使得用户的快速学习和代码维护能力大大提高。
简单、优雅、有效——这就是Spark!
Spark是一个简单的大数据处理框架,它可以帮助程序设计人员和数据分析人员在不了解分布式底层细节的情况下,编写一个简单的数据处理程序就可以对大数据进行分析计算。
Spark是一个优雅的数据处理程序,借助于Scala函数式编程语言,以前往往几百上千行的程序,这里只需短短几十行即可完成。Spark创新了数据获取和处理的理念,简化了编程过程,不再需要建立索引来对数据进行分类,通过相应的表链接即可将需要的数据匹配成我们需要的格式。Spark没有臃肿,只有优雅。
Spark是一款有效的数据处理工具程序,充分利用集群的能力对数据进行处理,其核心就是MapReduce数据处理。通过对数据的输入、分拆与组合,可以有效地提高数据管理的安全性,同时能够很好地访问管理的数据。
Spark是建立在JVM上的开源数据处理框架,开创性地使用了一种从最底层结构上就与现有技术完全不同,但是更加具有先进性的数据存储和处理技术,这样使用Spark时无须掌握系统的底层细节,更不需要购买价格不菲的软硬件平台。它借助于架设在普通商用机上的HDFS存储系统,就可以无限制地在价格低廉的商用PC上搭建所需要规模的评选数据分析平台。即使从只有一台商用PC的集群平台开始,也可以在后期任意扩充其规模。
Spark是基于MapReduce并行算法实现的分布式计算,其拥有MapReduce的优点,对数据分析细致而准确。更进一步,Spark数据分析的结果可以保持在分布式框架的内存中,从而使得下一步的计算不再频繁地读写HDFS,使得数据分析更加快速和方便。
提示:需要注意的是,Spark并不是“仅”使用内存作为分析和处理的存储空间,而是和HDFS交互使用,首先尽可能地采用内存空间,当内存使用达到一定阈值时,仍会将数据存储在HDFS上。
除此之外,Spark通过HDFS使用自带的和自定义的特定数据格式(RDD、DataFrame),基本上可以按照程序设计人员的要求处理任何数据(音乐、电影、文本文件、Log记录等),而不论数据类型是什么样的。编写相应的Spark处理程序,可以帮助用户获得任何想要的答案。
有了Spark后,再没有数据被认为是过于庞大而不好处理或不好存储的,从而解决了之前无法解决的、对海量数据进行分析的问题,便于发现海量数据中潜在的价值。