作者:一切皆空2502861573 | 来源:互联网 | 2023-10-12 11:27
目录SparkOnYarn两种模式引入一、当一个MR应用提交运行到HadoopYARN上时二、当一个Spark应用提交运行在集群上时注意client模式cluster
目录
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)