上QQ阅读APP看书,第一时间看更新
1.2.1 快速
Spark 通过多种手段来追求速度。第一,近期硬件行业迎来了大幅提高 CPU 和内存性能并降低价格的大潮,而 Spark 的内部实现从中获益巨大。现在的商品服务器价格低廉、具备上百 GB 的内存、具有多处理核心,而且底层的类 Unix 操作系统能够充分发挥多线程和并行处理的能力。Spark 框架专门针对这些特点进行了优化。
第二,Spark 将查询计算构建为有向无环图(directed acyclic graph,DAG),然后用其 DAG 调度器和查询优化器构建出高效的计算图,图中每个节点一般可以分解为一组任务,在集群的工作节点上并行执行。
第三,Spark 的物理执行引擎 Tungsten 使用全局代码生成功能,以生成紧凑的代码用于执行(第 3 章将介绍 SQL 优化和全局代码生成功能)。
所有中间结果都保留在内存中,并且磁盘读写不多,这极大地提高了 Spark 的性能。