2021年大数据Spark(九):Spark On Yarn两种模式总结

387 阅读3分钟

目录

Spark On Yarn两种模式

引入

一、当一个MR应用提交运行到Hadoop YARN上时

二、当一个Spark应用提交运行在集群上时

注意

client 模式

cluster 模式

总结

- Client模式:学习测试时使用,开发不用,了解即可

- Cluster模式:生产环境中使用该模式


Spark On Yarn两种模式

引入

一、当一个MR应用提交运行到Hadoop YARN上时

包含两个部分:应用管理者AppMaster和运行应用进程Process(如MapReduce程序MapTask和ReduceTask任务),如下图所示:

 

二、当一个Spark应用提交运行在集群上时

应用架构有两部分组成:Driver Program(资源申请和调度Job执行)和Executors(运行Job中Task任务和缓存数据),都是JVM Process进程:

 

而Driver程序运行的位置可以通过--deploy-mode 来指定,

值可以是:

1.client:表示Driver运行在提交应用的Client上(默认)

2.cluster:表示Driver运行在集群中(Standalone:Worker,YARN:NodeManager)

 

补充Driver是什么:

The process running the main() function of the application and creating the SparkContext

运行应用程序的main()函数并创建SparkContext的进程

 

注意

cluster和client模式最最本质的区别是:Driver程序运行在哪里

企业实际生产环境中使用cluster

 

client 模式

DeployMode为Client,表示应用Driver Program运行在提交应用Client主机上,示意图如下:

 

   运行圆周率PI程序,采用client模式,命令如下:


SPARK_HOME=/export/server/spark

${SPARK_HOME}/bin/spark-submit \

--master yarn  \

--deploy-mode client \

--driver-memory 512m \

--executor-memory 512m \

--num-executors 1 \

--total-executor-cores 2 \

--class org.apache.spark.examples.SparkPi \

${SPARK_HOME}/examples/jars/spark-examples_2.11-2.4.5.jar \

10

http://node1:8088/cluster

 

 

 

cluster 模式

DeployMode为Cluster,表示应用Driver Program运行在集群从节点某台机器上,示意图如下:

 

运行圆周率PI程序,采用cluster模式,命令如下:


SPARK_HOME=/export/server/spark

${SPARK_HOME}/bin/spark-submit \

--master yarn \

--deploy-mode cluster \

--driver-memory 512m \

--executor-memory 512m \

--num-executors 1 \

--total-executor-cores 2 \

--class org.apache.spark.examples.SparkPi \

${SPARK_HOME}/examples/jars/spark-examples_2.11-2.4.5.jar \

10

http://node1:8088/cluster

 

 

 

 

 

 

 

 

 

总结

Client模式和Cluster模式最最本质的区别是:Driver程序运行在哪里。

- Client模式:学习测试时使用,开发不用,了解即可

  1.Driver运行在Client上,和集群的通信成本高

  2.Driver输出结果会在客户端显示

- Cluster模式:生产环境中使用该模式

  1.Driver程序在YARN集群中,和集群的通信成本低

  2.Driver输出结果不能在客户端显示

  3.该模式下Driver运行ApplicattionMaster这个节点上,由Yarn管理,如果出现问题,yarn会重启ApplicattionMaster(Driver)