Spark-submit参数详解

Posted 十三说IT

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark-submit参数详解相关的知识,希望对你有一定的参考价值。

在完成Spark程序的编写完成后,自然就到了将程序部署到生成上的流程了,其中有一个关键的参数调整就是Spark-submit。

Spark submit看上去是一个简单的将Spark程序提交到Yarn等资源管理矿浆中进行执行,但是在实际的工作中,发现一些多年大数据开发的同事都对这些参数毫无概念,难以置信。这些人在写程序的时候,怎么能不了解原理的情况下就自信到随意使用参数。

 

参数提交格式:

./bin/spark-submit \
 
--class<main-class> \
 
--master<master-url> \
 
--deploy-mode<deploy-mode> \
 
--conf <key>=<value> \
  ...
#其他参数
  <application-jar>
\
 
[application-arguments]

 

PS:切记application-jarapplication-arguments一定要位于最后~~我初学的时候,觉得这个顺序无所谓,直接写到--jars的前面,导致后面的参数没有任何效果,还不报错。后面的参数直接被截断不生效了。就这个问题,我花了两天时间去解决。。。羞愧 ~

 

常用参数简介;

参数名

简介

class

spark程序的主类,注意用  全包名+类名

masterdeploy-mode

两个参数合起来表名程序提交到哪个资源管理框架,以何种方式部署。

--master:执行资源管理框架,目前CDH和fusioninsight都是使用的YARN。还有一种   是local和local[K].这种是本地run的模式,不会提交到YARN,便于测试使用呢。这两之间的区别,带K的是多K个线程,不带K的是单个线程。如果是*的话就是尽可能多的线程数。

--deploy-mode,分为 client和cluster,默认是client。client是指driver在提交任务的服务器上执行,cluster是driver和exectutor都在集群内执行。

executor-memory

设置执行器的内存 ,具体的设置方法可以看之后的spark提交参数详解

executor-cores

设置执行器的核数 ,具体的设置方法可以看之后的spark提交参数详解

Executor-memoryOverheadM

设置执行器的堆外内存 ,具体的设置方法可以看之后的spark调优方法.执行器的内存=executor-memory+Executor-overheadMemory

driver-memory

设置驱动器的内存 ,具体的设置方法可以看之后的spark提交参数详解

driver-cores

设置驱动器的核数 ,具体的设置方法可以看之后的spark提交参数详解

driver-memoryOverheadM

设置driver的堆外内存 ,具体的设置方法可以看之后的spark提交参数详解driver的内存=driver-memory+driver-overheadMemory

num-executors

设置执行器的数量;但是目前CDH和FusionInsight都支持动态分配(dynamic allocat)模式。在这种模式下,无论怎么设置num-executors其实都会被忽略的,

queue

执行队列池;通常生产环境都会为特定的租户分配资源池。这个参数便是用于指定跑批租户资源池名称的。

Jars

指定本次程序依赖的jar包;一般来说CDH和FusionInsight都绝大部分的大数据组件包,无需做任务处理,打包时无需打入依赖包。但是一些特殊的包可以通过两种方式引入:

1、把依赖包打入执行程序包,这样会造成包体较大,每次打包上传耗时间表达;

2、不打入依赖包,把依赖包提前传到服务器,再通过jars指令指出依赖包的文件路径

 

具体示例:

# 本地运行程序,用8核
./bin/spark-submit
\
 
--classorg.apache.spark.examples.SparkPi \
 
--master local[8] \
  /path/to/examples.jar
\
  100

#提交在集群,默认是client模式
./bin/spark-submit
\
 
--classorg.apache.spark.examples.SparkPi \
 
--masterspark://207.184.161.138:7077 \
 
--executor-memory 20G \
 
--total-executor-cores 100 \
  /path/to/examples.jar
\
  1000

# 集群上运行,并设置supervise。只能独立模式和mesos下有效。当driver失败时,自动重试

./bin/spark-submit\
 
--class org.apache.spark.examples.SparkPi \
 
--master spark://207.184.161.138:7077 \
 
--deploy-mode cluster \
 
--supervise \
 
--executor-memory 20G \
 
--total-executor-cores 100 \
  /path/to/examples.jar
\
  1000

#yarn集群上运行
./bin/spark-submit
\
 
--classorg.apache.spark.examples.SparkPi \
 
--master yarn \
 
--deploy-mode cluster # can be client forclient mode
 
--executor-memory 20G \
 
--num-executors 50 \
  /path/to/examples.jar
\
  100


以上是关于Spark-submit参数详解的主要内容,如果未能解决你的问题,请参考以下文章

spark submit 参数

spark提交参数解析

决策树原理与Sklearn参数详解

SVM原理与Sklearn参数详解

Redis 配置参数详解

openFeign各个参数详解