spark代码在driver还是executor上执行理解

整体来说,driver执行的就是除了RDD算子中的代码块以外的所有代码块,并且只执行一次。但是这个也不是绝对的,因为在RDD算子中不对RDD做操作的部分(比如println("aa"))也会在driver中进行执行只不过这部分代码在driver上是计算一次就执行一次。如下两图:

spark代码在driver还是executor上执行理解

spark代码在driver还是executor上执行理解

并且spark的每个batch在执行的时候也是先执行driver中的代码,然后遇到action操作再去划分DAG图将具体执行算子分发到各个executor上执行。

 

 

 

参考博文:

https://blog.****.net/tianyeshiye/article/details/87933009