What is Apache Spark?

"an open-source distributed general-purpose cluster-computing framework"

Posted by Mugen on March 9, 2019

本文转载自 Spark简介(Python版)

Spark简介

Spark 在 2009 年左右诞生于加州大学伯克利分校的著名 AMPLab。最初推动 Spark 成名的原因是它能够经常在内存执行大量的计算工作,直到作业的最后一步才写入磁盘。工程师通过弹性分布式数据集(RDD)理念实现了这一目标,在底层 Pipeline 中能够获取每个阶段数据结果的所有派生关系,并且允许在机器故障时根据需要重新计算中间结果,当然,这些都基于一些假设 a)输入是总是可重放的,b)计算是确定性的。对于许多案例来说,这些先决条件是真实的,或者看上去足够真实,至少用户确实在 Spark 享受到了巨大的性能提升。从那时起,Spark 逐渐建立起其作为 Hadoop 事实上的继任产品定位。

——Streaming System

基于DAG的任务调度执行机制,运行速度更快

内存计算,中间结果直接放到内存中,带来了更高的迭代运算效率

容易使用:Spark支持使用Scala、Java、Python和R语言进行编程,

通用性:Spark提供了完整而强大的技术栈,包括SQL查询、流式计算、机器学习和图算法组件,这些组件可以无缝整合在同一个应用中,足以应对复杂的计算

不局限于Map和Reduce操作

Spark可运行于独立的集群模式中,或者运行于Hadoop中,

Spark最大的特点就是将计算数据、中间结果都存储在内存中,大大减少了IO开销,,因而,Spark更适合于迭代运算比较多的数据挖掘与机器学习运算。