作者:ezaya
链接:https://www.zhihu.com/question/403840013/answer/1317631316
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
目录
这四个项目能放在一起比较的背景应该是分布式计算的演进过程。
一、MapReduce
开源分布式计算的第一个流行的框架是 Hadoop 项目中的 MapReduce 模块。它将所有计算抽象成 Map 和 Reduce 两个阶段,在计算时通过增加机器,并行的读取数据文件,进行 Map 或 Reduce 的操作,并将结果写到文件中。如此反复得到最终的结果。
上面过程中,每个 Map 和 Reduce 阶段所能表达的计算逻辑是有限的,因此完整的业务逻辑往往包含了多个阶段。注意到每个阶段都有读取数据文件和数据写出到文件的开销,对于同一个任务的中间结果,其唯一用途就是被下一阶段读取,且读后就成为垃圾文件,对中间结果落盘显然是不合理的重大开销。
二、Spark
基于这样的观察,Spar