SparkOnYarn专题二---以Cluster模式和Client模式下的任务提交

19 篇文章 1 订阅
4 篇文章 0 订阅

 

版权声明:本文为博主原创文章,未经博主允许不得转载!!

欢迎访问:https://blog.csdn.net/qq_21439395/article/details/80678392

交流QQ: 824203453

 

hadoop版本: 2.8.0  spark 版本: 2.2.0

 

1.运行spark on yarn 任务简介

 

yarn集群运行spark任务有两种模式:分别是集群模式(cluster)和客户端模式(client),两种模式的提交主要通过参数来区分。

 

在spark2.x 中,提交spark任务到yarn集群的主要配置为:

# spark-submit  --master  yarn  --deploy-mode  client  

# spark-submit  --master  yarn  --deploy-mode  cluster

 

补充:在spark1.x 中,提交spark 任务到yarn集群的主要配置为:

# spark-submit  --master  yarn-client  

# spark-submit  --master  yarn-cluster

就是把之前的参数,一分为二了。

2.cluster模式 提交任务

2.1 提交命令如下:

官方示例命令:

./bin/spark-submit --class org.apache.spark.examples.SparkPi \

--master yarn \

--deploy-mode cluster \

--driver-memory 1g \

--executor-memory 1g \

--executor-cores 2 \

--queue default \

lib/spark-examples*.jar \

100

默认资源演示命令:

spark-submit --master yarn --deploy-mode cluster --class org.apache.spark.examples.SparkPi /root/apps/spark-2.2.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.2.0.jar 1000

 

2.2 查看进程:

cluster模式下的进程信息:

sparkSubmit:  仅仅是负责提交任务,提交完任务,功能结束。

Driver程序 运行在ApplicationMaster 进程中。Driver运行在集群中。

2.3 资源可以DIY:

spark-submit --master yarn --deploy-mode cluster --driver-memory 1g --driver-cores 2 --executor-cores 2 --executor-memory 1g  --num-executors 100 --class org.apache.spark.examples.SparkPi /root/apps/spark-2.2.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.2.0.jar 1000

 

参数说明:

--driver-memory              ApplicationMaster 所在容器内存

--driver-cores                    ApplicationMaster  所在容器 cores

--executor-cores              executor的cores

--executor-memory         executor的内存

--num-executors:          总的executor的个数

 

资源分配,详情可移步 《SparkOnYarn专题四--cluster模式和client模式资源分配的详解》: https://blog.csdn.net/qq_21439395/article/details/80678493

 

示例程序展示的结果在集群中才能查看:

3. client模式 提交任务

3.1 提交命令如下:

默认资源演示命令:

spark-submit --master yarn --deploy-mode client --class org.apache.spark.examples.SparkPi /root/apps/spark-2.2.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.2.0.jar 1000

3.2 查看进程:

client模式下,没有了ApplicationMaster,替代的是ExecutorLauncher,阉割版的ApplicationMaster,功能类似于ApplicationMaster,仅负责executor的启动。

示例程序运行的结果可以在客户端中显示:

 

4 spark-shell 只能在client模式下运行

如果运行 Spark-shell,必须使用client模式

# spark-shell --master yarn --deploy-mode client

5.两种模式的区别

cluster模式:Driver程序在YARN中运行,应用的运行结果不能在客户端显示,所以最好运行那些将结果最终保存在外部存储介质(如HDFS、Redis、Mysql)而非stdout输出的应用程序,客户端的终端显示的仅是作为YARN的job的简单运行状况。

cluster模式下,客户端提交任务,就可以退出。程序正常在集群中运行;如果Driver运行失败,可以在集群中进行重启。

 

client模式:Driver运行在Client上,应用程序运行结果会在客户端显示,所以适合运行结果有输出的应用程序(如spark-shell)

客户端不能提前退出,否则程序终止。

 

版权声明:本文为博主原创文章,未经博主允许不得转载!!

欢迎访问:https://blog.csdn.net/qq_21439395/article/details/80678392

交流QQ: 824203453

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值