带你了解极具弹性的Spark架构的原理
摘要:相比MapReduce僵化的Map与Reduce分阶段计算相比,Spark的计算框架更加富有弹性和灵活性,运行性能更佳。 本文分享自华为云社区《Spark架构原理》,作者:JavaEdge。 相比MapReduce僵化的Map与Reduce分阶段计算相比,Spark的计算框架更加富有弹性和灵活性,运行性能更佳。 Spark的计算阶段 MapReduce一个应用一次只运行一个map和一个reduce Spark可根据应用的复杂度,分割成更多的计算阶段(stage),组成一个有向无环图DAG,Spark任务调度器可根据DAG的依赖关系执行计算阶段 逻辑回归机器学习性能Spark比MapReduce快100多倍。因为某些机器学习算法可能需要进行大量迭代计算,产生数万个计算阶段,这些计算阶段在一个应用中处理完成,而不是像MapReduce那样需要启动数万个应用,因此运行效率极高。 DAG,有向无环图,不同阶段的依赖关系是有向的,计算过程只能沿依赖关系方向执行,被依赖的阶段执行完成前,依赖的阶段不能开始执行。该依赖关系不能有环形依赖,否则就死循环。 典型的Spark运行DAG的不同阶段: ...