Spark2x是基于内存的分布式计算框架,在迭代计算场景下数据可以被缓存到内存中,提供比MapReduce框架更佳的计算性能。但“可以缓存”到内存不代表完全缓存/不走磁盘IO,需要取决于实际数据量与运行场景。
Spark2x的应用运行过程基本可分为下列四个过程,在此简要叙述,方便后续针对性了解:
Spark的核心概念RDD(Resilient Distributed Dataset,弹性分布数据集),指的是只读的,可分区的分布式数据集,这个Dataset可以全部/部分缓存在内存中,在多次计算间重用。
RDD的生成很容易理解,来源于数据的导入、已有数据的转换。
RDD的存储可以选择不同的存储级别来缓存,以便重用(11种存储级别,简单理解为Cache/Persist的各种组合),即便是Cache模式在Shuffle操作时也会自动去持久化中间数据的;默认是存储于内存,内存不足时会溢出写到磁盘中。