目录
1. Standalone模式两种提交任务方式
1.1 Standalone-client提交任务方式
提交命令
...代表spark安装目录
./spark-submit --master spark://hadoop101:7077 --class org.apache.saprk.examples.SparkPi .../examlpes/jars/spark-examples_2.11-2.2.0.jar 100
./spark-submit --master spark://hadoop101:7077 --depoly-mode client --class org.apache.saprk.examples.SparkPi .../examlpes/jars/spark-examples_2.11-2.2.0.jar 100
执行原理图解
执行流程
- 在客户端提交Spark应用程序,会在客户端启动Driver。
- 客户端向Master申请资源,Master找到资源返回。
- Driver向worker节点发送task,监控task执行,回收结果。
总结
client方式提交任务,在客户端提交多个application,客户端会为每个application都启动一个Driver, Driver与集群Worker节点有大量通信,这样会造成客户端网卡流量激增。
在客户端可以看到task执行情况和计算结果。
client方式提交任务适用于程序测试,不适用于真实生产环境。
1.2 Standalone-cluster提交任务方式
提交命令
./spark-submit --master spark://hadoop101:7077 --depoly-mode cluster --class org.apache.saprk.examples.SparkPi .../examlpes/jars/spark-examples_2.11-2.2.0.jar 100
执行原理图解
执行流程
- 客户端提交application,客户端首先向Master申请启动Driver
- Master收到请求之后,随机在一台Worker节点上启动Driver
- Driver启动之后,向Master申请资源,Master返回资源。
- Driver发送task,监控task执行,回收结果。
总结
cluster方式提交任务,Driver在集群中的随机一台Worker节点上启动,分散了client方式的网卡流量激增问题。 cluster方式适用于真实生产环境,在客户端看不到task执行情况和执行结果,要去WEBUI中去查看。
1.3 Driver的功能
在standalone模式中Driver的功能
- 发送task
- 监控task执行,回收结果
- 申请资源