Spark 运行模式(StandAlone Yarn)

1.StandAlone 模式

1.1 Client 模式

流程:

Client模式Drive运行在Client上,使用Spark Shell提交任务的时候,Drive运行在Master上

1.Spark Context 连接到Master,并向Master注册申请资源

2.Master根据sc提出的申请,检测Worker的心跳,并找到有资源的Worker,并在Worker上启动Executor,

3.启动Executor的Worker机器向SC注册

4.SC将应用分配给Executor

5.SC解析应用,创建DAG图,提交给DAGScheduler分解成一个或多个Stage。然后Stage被发送给TaskScheduler,TaskScheduler负责将Stage中的Task分配到相应的Worker中的Executor中执行

6.Executor会生成Executor线程池,开始执行Task,并向SC汇报Task执行的状态和进度

7.当所有的Task执行结束后,SC向Master注销

/bigdata/spark-2.3.3-bin-hadoop2.7/bin/spark-submit --master spark://node-1:7077 --class spark.day01.WordCount --deploy-mode client /root/spark10-1.0-SNAPSHOT.jar hdfs://node-1:9000/wc hdfs://node:9000/out01

1.2 Cluster 模式

特点:Driver运行在集群中,不在SparkSubmit进程中,需要将jar包上传到hdfs中

/bigdata/spark-2.3.3-bin-hadoop2.7/bin/spark-submit --master spark://node-1:7077 --class spark.day01.WordCount --deploy-mode client hdfs://node-1:9000/jars/spark10-1.0-SNAPSHOT.jar hdfs://node-1:9000/wc hdfs://node-1:9000/out002

2. On Yarn 模式

2.1 Client 模式

流程:

1.客户端提交一个Application,在客户端启动一个Driver进程

2.Driver进程会向ResourceManger发送请求,会启动ApplicationMaster的资源

3.ResourceManger会随机选择一台NodeManger,然后改NodeManger回到HDFS中下载jar包和配置,接着启动ApplicationMaster【ExecutorLuacher】。这里的NodeManger相当于StandAlone中的Worker节点

4.ApplicationMaster启动后,会向ResourceManager请求一批container资源,用于启动Executor.

5.ResourceManager会找到一批符合条件NodeManager返回给ApplicationMaster,用于启动Executor。

6.ApplicationMaster会向NodeManager发送请求,NodeManager到HDFS下载jar包和配置,然后启动Executor。

7.Executor启动后,会反向注册给Driver,Driver发送task到Executor,执行情况和结果返回给Driver端

2.2 Cluster 模式

执行流程:

1.client向RM申请资源,RM会返回一个application ID

2.client上传spark jars下面的jar包以及自己写的jar包和配置

3.RM随机找一个资源充足的NodeManger

4.然后通过RPC通信让NodeManger从HDFS中下载jar包和配置,并启动ApplicationMaster

5.ApplicationMaster向RM申请资源

6.RM中的ResourceScheduler找到符合条件的NM,将NM的信息返回给ApplicationMaster

7.ApplicationMaster跟返回的NM进行通信

8.NM从HDFS中下载依赖

9.NM启动Executor

10.Executor启动之后反向向ApplicationMaster【Diver】注册

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值