Spark生态系统众生相
Apache Spark不仅仅让大数据处理起来更快,还让大数据处理起来更简单、功能更强大、更方便。Spark并非只是一项技术,它结合了诸多部分,新的功能和性能改进不断添加进来,每个部分都在不断完善之中。
本文介绍了Spark生态系统的每个主要部分:每个部分的功能,为什么很重要,是如何发展的,在哪方面不尽如人意,以及可能会往哪个方向发展。
Spark Core
Spark的核心是恰如其名的Spark Core。除了协调和调度作业外,Spark Core还为Spark中的数据处理提供了基本的抽象机制,名为弹性分布式数据集(RDD)。
RDD对数据执行两个动作:转换和操作。前者转换数据,并将它们作为刚创新的RDD来提供;后者根据现有的RDD(比如对象数量)来计算结果。
Spark的速度很快,原因是转换和操作都保存在内存中。操作慢腾腾地评估,这意味着只有需要相关的数据时,才执行操作;然而,很难搞清楚什么在缓慢运行。
Spark的速度在不断提高。Java的内存管理往往给Spark带来问题,于是Project Tungsten计划避开JVM的内存和垃圾收集子系统,以此提高内存效率。
Spark API