RDD是Spark对各类数据计算模型的统一抽象,被用于迭代计算过程以及任务输出结果的缓存读写。
在所有MapReduce框架中,shuffle是连接map任务和reduce任务的桥梁。shuffle性能优劣直接决定了
整个计算引擎的性能和吞吐量。
6.1 迭代计算
MappedRDD的iterator方法
6.2 什么是shuffle
shuffle是所有MapReduce计算框架所必须经过的阶段,shuffle用于打通map任务的输出与reduce任务的输入,
map任务的中间输出结果按照key值哈希后分配给某一个reduce任务。
目前Spark的shuffle已经做了多种性能优化,主要解决方案包括: