Spark于2000年诞生于美国加州大学伯克利分校的AMP实验室,它是一个可应用于大规模数据处理的统一分析引擎。
它是基于内存计算的大数据并行计算框架
Spark生态系统主要包含Spark Core. Spark SQL. Spark Streaming MI lib GraphX以及独立调度器:
介绍:
Spork生态系统各个组件关系密切,并且可以相互调用,这样设计具存以下是著优势:
Spark框架对大数据的支持从内存计算、实时处理到交互式查询,进而发展 到图计算和机器学习模块。
Spark计算框架在处理数据时,所有的中间数据都保存在内存中。
同时Spark还兼容HDFS.Hive,可以很好地与Hadop系统融合.
Spark具有以下几个显著的特点:
与Hadoop相比.Spark基于内存的运算效事要快100倍以上,基于硬盘的运算效率也要快10倍以上。
Spark编程支持Java、Python、Scala及R语言,并且还拥有超过80种高级算法.除此之外:Spark还支持交互式的Shell操作.
Spark提供了统一的解决方案,适用于批处理、交互式查询(Spark SQL)、 实时流处理 (Spark Streaming)、机器学习(Spark MEhb和图计算(GraphX)。
Spark可以运行在Hadoop模式、Mesos模式、Standalone独立模式或Cloud中,并且还可以访问各种数据源包括本地文件系统、HDFS.Cassandra、HBase和Hive等。
(1)在数据科学应用中 ,数据工程师可以利用Spark进行数据分析与建模
(2)在数据处理应用中,大数据工程师将Spark技术应用于广告、报表、推荐系统等业务中
(3)Spark拥有完整而强大的技术栈,如今已吸引了国内外各大公司的研发与使用,淘宝技术团队使用Spark来解决多次迭代的机器学习算法、高计算复杂度的算法等问题,应用于商品推荐、社区发现等功能。
四.Spark于Hadoop对比
Hadoop与Spark都是大数据计算框架,但是两者各有自己的优势,Spark与Hadop的区别主要有以下几点:
Hadoop的MapReduce在计算数据时计算过程必须要转化为Map和Reduce两个过程,从而难以描述复杂的数据处理过程:而Spark的计算模型不局限于Map和Reduce操作,还提供了多种数据集的操作类型,编程模型比MapReduce更加灵活。
Hadoop 的MapReduce进行计算时.每次产生的中间结果都是存储在本地磁盘中:而Spark在计算时产生的中间结果存储在内存中。
Hadoop在每次执行数据处理时,都需要从磁盘中加载数据,导致磁盘的1/0开销较大;而Spark在执行数据处理时,只需要将数据加载到内存中,之后直接在内存中加载中间结果数据集即可,减少了磁盘的I/O开销。
MapReduce计算的中间结果数据保存在磁盘中,并且Hadoop框架底层实现了备份机 制,从而保证了数据容错:同样Spark RDD实现了基于Lineage的容错机制和设置检查点的容错机制,弥补了数据在内存处理时断电丢失的问题。