版权声明:本文为博主原创文章,未经博主允许不得转载!!
欢迎访问:https://blog.csdn.net/qq_21439395/article/details/80678392
交流QQ: 824203453
hadoop版本: 2.8.0 spark 版本: 2.2.0
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
就是把之前的参数,一分为二了。
官方示例命令:
./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 |
cluster模式下的进程信息:
sparkSubmit: 仅仅是负责提交任务,提交完任务,功能结束。
Driver程序 运行在ApplicationMaster 进程中。Driver运行在集群中。
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
示例程序展示的结果在集群中才能查看:
默认资源演示命令:
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 |
client模式下,没有了ApplicationMaster,替代的是ExecutorLauncher,阉割版的ApplicationMaster,功能类似于ApplicationMaster,仅负责executor的启动。
示例程序运行的结果可以在客户端中显示:
如果运行 Spark-shell,必须使用client模式
# spark-shell --master yarn --deploy-mode client
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