stage 的计算模式
原文链接:https://blog.csdn.net/wyqwilliam/article/details/81123227
stage 的计算模式就是:pipeline 模式,即计算过程中数据不会落地,也就是不会存到 磁盘,而是放在内存中直接给下一个函数使用,stage 的计算模式类似于 1+1+1 = 3,而 MapReduce 的计算模式类似于 1+1=2、2+1=3,就是说 MR 的中间结果都会写到磁盘上
管道中的数据在以下情况会落地:
1.对某一个 RDD 执行控制算子(比如对 mapRDD 执行了 foreach()操作)
2.在每一个 task 执行完毕后,数据会写入到磁盘上,这就是 shuffle write 阶段
粗粒度和细粒度的资源调度
粗粒度的资源调度:
Spark 在 Application 执行之前,将所有的资源申请完毕,然后再进行任务调度,直到最后一 个 task 执行完毕,才会释放资源
优点:每一个 task 执行之前不需要自己去申请资源,直接使用资源就可以,每一个 task 的启动时间就变短了,task 执行时间缩短,使得整个 Application 执行的速度较快
缺点:无法充分利用集群的资源,比如总共有 10 万的 task,就要申请 10 万个 task 的 资源,即使只剩下一个 task 要执行&#x