三 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模式:
如果提交应用的时候指定 --deploy-mode是cluster的话,就会使用cluster模式提交这个应用。
cluster模式:
总结,client模式,集群的Master和Worker会在同一网段,网络传输速度比较快。cluster模式下Master和Worker网络可能不在同一网段,传输速度可能比较慢。所以cluster模式下最好提前把jar放到worker相应地目录下。
所以如果Master和Worker网络处于同一网段,用client模式比较方便。如果Master和Worker之间网络速度较慢,就要使用cluster模式,来尽量减少Master和Worker之间网络通信带来的延迟。
最后推荐一篇总结得很好地文章:https://blog.****.net/Trigl/article/details/72732241