第4章 Spark工作机制详解
通过前一章的介绍,读者对Spark的计算模型有了全面的把握,本章将深入介绍Spark的内部运行机制。Spark的主要模块包括调度与任务分配、I/O模块、通信控制模块、容错模块以及Shuffle模块。Spark按照应用、作业、Stage和Task几个层次分别进行调度,采用了经典的FIFO和FAIR等调度算法。在Spark的I/O中,将数据以块为单位进行管理,需要处理的块可以存储在本机内存、磁盘或者集群中的其他机器中。集群中的通信对于命令和状态的传递极为重要,Spark通过AKKA框架进行集群消息通信。分布式系统中的容错十分重要,Spark通过Lineage(血统)和Checkpoint机制进行容错性保证。最后介绍Spark中的Shuffle机制,虽然Spark也借鉴了MapReduce模型,但其对Shuffle机制进行了创新与优化。下面开始Spark内部运行机制的探索。