【Spark篇】--Spark中Standalone的两种提交模式

1、前述node

Spark中Standalone有两种提交模式,一个是Standalone-client模式,一个是Standalone-master模式。web

2、具体apache

        一、Standalone-client提交任务方式app

  • 提交命令

            ./spark-submit --master  spark://node01:7077 --class org.apache.spark.examples.SparkPi  ../lib/spark-examples-1.6.
0-hadoop2.6.0.jar 100
函数

         ./spark-submit --master  spark://node01:7077 --deploy-mode client --class org.apache.spark.examples.SparkPi  ../li
b/spark-examples-1.6.0-hadoop2.6.0.jar 100
oop

 

解释:--class org.apache.spark.examples.SparkPi         main函数测试

          ../lib/spark-examples-1.6.0-hadoop2.6.0.jar        jar包ui

            100                                                                        main函数须要参数spa

 

  • 执行原理图解

 

 

  • 执行流程

               一、client模式提交任务后,会在客户端启动Driver进程。调试

               二、Driver会向Master申请启动Application启动的资源。

              三、资源申请成功Driver端将task发送到worker端执行

               四、worker将task执行结果返回到Driver端。

 

  • 总结

                一、client模式适用于测试调试程序。Driver进程是在客户端启动的,这里的客户端就是指提交应用程序的当前节点。Driver端能够看到task执行的状况。生产环境下不能使用client模式,是由于:假设要提交100application到集群运行,Driver每次都会在client端启动,那么就会致使客户端100次网卡流量暴增的问题。(由于要监控task的运行状况,会占用不少端口,如上图的结果图)客户端网卡通讯,都被task监控信息占用。

               二、Client端做用

                       1. Driver负责应用程序资源的申请

 

                       2. 任务的分发。

 

                       3. 结果的回收。

 

                       4. 监控task执行状况。

 

二、Standalone-cluster提交任务方式

          

  • 提交命令

           ./spark-submit  --master spark://node01:7077  --deploy-mode cluster --class org.apache.spark.examples.SparkPi  ../
lib/spark-examples-1.6.0-hadoop2.6.0.jar  100

  • 执行原理图解

  • 执行流程

 

                一、cluster模式提交应用程序后会向Master请求启动Driver.(而不是启动application)

                二、Master接受请求,随机在集群一台节点启动Driver进程。

                三、Driver启动后为当前的应用程序申请资源。Master返回资源,并在对应的worker节点上发送消息启动Worker中的executor进程。

                四、Driver端发送task到worker节点上执行。

                五、worker将执行状况和执行结果返回给Driver端。Driver监控task任务,并回收结果。

  • 总结

 

          一、当在客户端提交多个application时,Driver会在Woker节点上随机启动,这种模式会将单节点的网卡流量激增问题分散到集群中在客户端看不到task执行状况和结果。要去webui中看。cluster模式适用于生产环境

          二、 Master模式先启动Driver,再启动Application。

相关文章
相关标签/搜索