1.4.2 Apache Spark

为了解决Apache Hadoop计算速度较慢的问题,Apache Spark应运而生。我们可以将Apache Spark看成一种“高层”分布式计算框架。它具有以下特点。

1)执行速度极快:首先它支持将计算任务的中间结果放在内存中而不是HDFS上,这样可以加快速度,根据评测最高可以提升100倍。

2)支持多种运行模式:除了可以独立在集群上执行任务以外,Spark还支持将任务执行在EC2或Apache Hadoop的YARN上,也可以从HDFS、Cassandra、HBase、Hive等各种数据存储系统中读取数据。

3)更多更通用的计算模型:Hadoop只提供了较为底层的MapReduce模型,编程人员往往需要大量编码来解决简单的任务。而Spark则提供了SQL接口、Apache Spark流模型接口、MLib机器学习接口以及GraphX图形计算接口等多种接口,可以方便应用于多种场合,提高开发人员的开发效率。

但Spark依然没有解决Hadoop计算模型中的一个致命问题——Spark的计算模型依然是任务式的,如果我们需要处理实时流入又需要实时反馈的数据,Spark的模型依然无法很好地满足我们的需求。