前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Spark篇】--Spark中Standalone的两种提交模式

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

作者头像
LhWorld哥陪你聊算法
发布2018-09-13 14:15:28
1.9K0
发布2018-09-13 14:15:28
举报

一、前述

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

二、具体

1、Standalone-client提交任务方式

  • 提交命令

./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

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

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

            100                                                                        main函数需要参数

  • 执行原理图解
  • 执行流程

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

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

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

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

  • 总结

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

    2、Client端作用

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

                       2. 任务的分发。

                       3. 结果的回收。

                       4. 监控task执行情况。

2、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

  • 执行原理图解
  • 执行流程

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

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

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

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

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

  • 总结

<!-- li { list-style: none; margin: 0; } p { margin: 0; } span.l { color: red; font-weight: bold; } a.mapnode:link {text-decoration: none; color: black; } a.mapnode:visited {text-decoration: none; color: black; } a.mapnode:active {text-decoration: none; color: black; } a.mapnode:hover {text-decoration: none; color: black; background: #eeeee0; } -->

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-02-04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档