人工智能时代前沿技术社区

首页 > 人工智能 > 热点

大数据框架系列二——Spark

在上一章节中分享了大数据的经典框架Hadoop,在这一小节中将继续带来大数据另一代表性框架——Spark框架的介绍。2009年,美国加州大学伯克

作者: | 2018-09-03 13:40:00

1535959487832966.jpg

在上一章节中分享了大数据的经典框架Hadoop,在这一小节中将继续带来大数据另一代表性框架——Spark框架的介绍。

 

2009年,美国加州大学伯克利分校的 AMPLab 设计并开发了名叫 Spark 的大数据处理框架。真如其名,Spark 像燎原之火,迅猛占领大数据处理框架市场。总的来说,Spark框架是一个快速且API丰富的内存计算框架。Spark采用Scala语言编写,Scala是基于JVM的语言,性能开销小。

 

Spark作为UC Berkeley AMP lab开发的一个集群计算的框架,类似于Hadoop,但有很多的区别。最大的优化是让计算任务的中间结果可以存储在内存中,不需要每次都写入HDFS,更适用于需要迭代的MapReduce算法场景中,可以获得更好的性能提升。例如一次排序测试中,对100TB数据进行排序,Spark比Hadoop快三倍,并且只需要十分之一的机器。Spark集群目前最大的可以达到8000节点,处理的数据达到PB级别,在互联网企业中应用非常广泛。

 

与此同时,Spark提供了大量的程序接口,如python、Scala、Java以及SQL接口,还可以使用HDFS、Hive等作为数据源,它的外部接口非常丰富,而且自身支持了很多组件:

1、Spark Core

spark的核心功能,包括任务调度、内存分配回收、RDD操作、API处理等。

2、Spark SQL

支持交互方式的数据访问,同时也能很大程度的降低spark编程的难度。

3、Spark Streaming

作为流式计算组件,它采用的是微批处理方式,即一次性处理需要的事务,中间不需要和人进行交互。

4、MLlib

机器学习组件,可提供大量的可集群化算法,包括聚类、分类以及逻辑回归等。

5、Graphx

可以进行集群化的图形计算和图形挖掘组件,非常适合社交网络产品的用户关系或者产品关系计算。