三 Spark应用提交流程

前置概念:

一、Master 和Worker 分别用于分配资源和管理资源。

从资源维度来看,一个程序运行分为两个阶段。

1、阶段1,先在Master上注册程序,让Master给程序分配资源,分配完之后。

2、阶段2,程序就在Worker上用这些资源。

二、Driver和Executor是对于应用程序(App,即jar包)来说的。

 

如果用的是Yarn或是Mesos这些资源管理框架时,Master和Worker就不存在的,即只有standalone模式才会有Master和Worker,用于分配和管理资源。standalone模式即Spark自己来管理资源。

 

应用提交(deploy-mode)分为client模式和cluster模式。默认是client模式。

client模式:

三 Spark应用提交流程

如果提交应用的时候指定 --deploy-mode是cluster的话,就会使用cluster模式提交这个应用。

cluster模式:

三 Spark应用提交流程

总结,client模式,集群的Master和Worker会在同一网段,网络传输速度比较快。cluster模式下Master和Worker网络可能不在同一网段,传输速度可能比较慢。所以cluster模式下最好提前把jar放到worker相应地目录下。

所以如果Master和Worker网络处于同一网段,用client模式比较方便。如果Master和Worker之间网络速度较慢,就要使用cluster模式,来尽量减少Master和Worker之间网络通信带来的延迟。

 

最后推荐一篇总结得很好地文章:https://blog.****.net/Trigl/article/details/72732241