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

2021-10-09 17:20:53 浏览数 (1)


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模式,命令如下:

代码语言:javascript复制
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模式,命令如下:

代码语言:javascript复制
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)

0 人点赞