Spark属性

或者去源码找Class类 SparkSubmitArguments,最全了

属性名称

默认

含义

spark.yarn.am.memory

512m

用于客户端模式下的YARN Application Master的内存量,格式与JVM内存字符串(例如512m2g)相同。在集群模式下,spark.driver.memory改为使用。使用小写字母后缀,例如kmgt,和p,为kibi-,mebi-,gibi-,tebi-和pebibytes分别。

spark.yarn.am.cores

1

在客户端模式下用于YARN Application Master的核心数量。在集群模式下,spark.driver.cores改为使用。

spark.yarn.am.waitTime

100s

cluster模式中,YARN Application Master等待SparkContext被初始化的时间。在client模式中,YARN Application Master等待驱动程序连接的时间。

spark.yarn.submit.file.replication

默认的HDFS复制(通常3

HDFS上传到应用程序的HDFS复制级别。这些包括Spark jar,应用程序jar以及任何分布式缓存文件/存档等内容。

spark.yarn.stagingDir

当前用户在文件系统中的主目录

提交应用程序时使用的暂存目录。

spark.yarn.preserve.staging.files

false

设置为true在作业结束时保留分段文件(Spark jar,app jar,分布式缓存文件),而不是删除它们。

spark.yarn.scheduler.heartbeat.interval-ms

3000

Spark应用程序主节点跳入YARN ResourceManager的时间间隔(以毫秒为单位)。该值被限制在YARN配置的到期时间间隔的一半值上,即 yarn.am.liveness-monitor.expiry-interval-ms

spark.yarn.scheduler.initial-allocation.interval

200ms

Spark应用程序主节点在存在未决的容器分配请求时热切地检测到YARN ResourceManager的初始时间间隔。它不应该大于 spark.yarn.scheduler.heartbeat.interval-ms。如果挂起的容器仍然存在,分配间隔会在连续的心跳心跳加倍,直到spark.yarn.scheduler.heartbeat.interval-ms达到。

spark.yarn.max.executor.failures

numExecutors * 2,最少3

失败应用程序之前执行程序失败的最大次数。

spark.yarn.historyServer.address

(没有)

Spark历史记录服务器的地址,例如host.com:18080。地址不应该包含scheme(http://)。由于历史记录服务器是可选服务,因此缺省设置为未设置。当Spark应用程序完成将应用程序从ResourceManager UI链接到Spark历史记录服务器UI时,该地址将被提供给YARN ResourceManager。对于这个属性,YARN属性可以用作变量,并且这些属性在运行时被Spark替换。例如,如果Spark历史记录服务器与YARN ResourceManager在同一节点上运行,则可将其设置为${hadoopconf-yarn.resourcemanager.hostname}:18080

spark.yarn.dist.archives

(没有)

逗号分隔的档案列表被提取到每个执行者的工作目录中。

spark.yarn.dist.files

(没有)

逗号分隔的文件列表将放置在每个执行程序的工作目录中。

spark.yarn.dist.jars

(没有)

逗号分隔的罐子列表将被放置在每个执行者的工作目录中。

spark.yarn.dist.forceDownloadSchemes

(none)

在被添加到YARN的分布式缓存之前,文件将被下载到本地磁盘的逗号分隔列表。用于YARN服务不支持Spark支持的方案的情况,如http,https和ftp。

spark.executor.instances

2

静态分配的执行者数量。与此同时spark.dynamicAllocation.enabled,最初的执行者将至少是这么大。

spark.yarn.am.memoryOverhead

AM存储器* 0.10,最小值为384

spark.driver.memoryOverhead客户端模式下的YARN Application Master 相同。

spark.yarn.queue

default

提交应用程序的YARN队列的名称。

spark.yarn.jars

(没有)

包含要分发到YARN容器的Spark代码的库的列表。默认情况下,YARN上的Spark将使用本地安装的Spark jar,但Spark jar也可以位于HDFS上全球可读的位置。这允许YARN将它缓存在节点上,以便每次应用程序运行时不需要分发它。例如,要指向HDFS上的jar,请将此配置设置为hdfs:///some/path。Globs是允许的。

spark.yarn.archive

(没有)

一个包含需要的Spark Jars的档案,用于分发到YARN缓存。如果设置,则此配置会替换,spark.yarn.jars并且该存档将用于所有应用程序的容器中。归档文件应该在其根目录中包含jar文件。与之前的选项一样,存档也可以托管在HDFS上以加速文件分发。

spark.yarn.access.hadoopFileSystems

(没有)

Spark应用程序将访问的安全Hadoop文件系统的逗号分隔列表。例如,spark.yarn.access.hadoopFileSystems=hdfs://nn1.com:8032,hdfs://nn2.com:8032, webhdfs://nn3.com:50070。Spark应用程序必须能够访问列出的文件系统,并且必须正确配置Kerberos以便能够访问它们(在相同的领域或受信任的领域)。Spark为每个文件系统获取安全令牌,以便Spark应用程序可以访问这些远程Hadoop文件系统。spark.yarn.access.namenodes 已弃用,请使用此代替。

spark.yarn.appMasterEnv.[EnvironmentVariableName]

(没有)

将指定的环境变量添加EnvironmentVariableName到在YARN上启动的应用程序主进程。用户可以指定其中的多个并设置多个环境变量。在cluster模式中,它控制Spark驱动程序的环境,并且在client模式下它仅控制执行程序启动程序的环境。

spark.yarn.containerLauncherMaxThreads

25

YARN Application Master中用于启动执行程序容器的最大线程数。

spark.yarn.am.extraJavaOptions

(没有)

一系列额外的JVM选项以客户端模式传递给YARN Application Master。在集群模式下,spark.driver.extraJavaOptions改为使用。请注意,使用此选项设置最大堆大小(-Xmx)设置是非法的。最大堆大小设置可以使用spark.yarn.am.memory

spark.yarn.am.extraLibraryPath

(没有)

在客户端模式下启动YARN Application Master时,设置一个特殊的库路径。

spark.yarn.maxAppAttempts

yarn.resourcemanager.am.max-attempts 在YARN

提交申请的最大尝试次数。它不应该大于YARN配置中的全局最大尝试次数。

spark.yarn.am.attemptFailuresValidityInterval

(没有)

定义AM故障跟踪的有效时间间隔。如果AM至少在定义的时间间隔内运行,则AM故障计数将被重置。如果未配置,此功能未启用。

spark.yarn.executor.failuresValidityInterval

(没有)

定义执行器故障跟踪的有效时间间隔。比有效期间更早的执行程序故障将被忽略。

spark.yarn.submit.waitAppCompletion

true

在YARN群集模式下,控制客户端是否等待退出,直到应用程序完成。如果设置为true,则客户端进程将保持活动状态,报告应用程序的状态。否则,客户端进程将在提交后退出。

spark.yarn.am.nodeLabelExpression

(没有)

一个YARN节点标签表达式将限制节点集合AM的安排。只有大于或等于2.6的YARN版本才支持节点标签表达式,所以在针对早期版本运行时,该属性将被忽略。

spark.yarn.executor.nodeLabelExpression

(没有)

一个YARN节点标签表达式将限制节点执行者集合的安排。只有大于或等于2.6的YARN版本才支持节点标签表达式,所以在针对早期版本运行时,该属性将被忽略。

spark.yarn.tags

(没有)

逗号分隔的字符串列表将作为YARN应用程序标签出现在YARN ApplicationReports中传递,可用于在查询YARN应用程序时进行过滤。

spark.yarn.keytab

(没有)

包含上面指定的主体的密钥表文件的完整路径。此密钥表将通过安全分布式缓存复制到运行YARN应用程序主控的节点,以定期更新登录凭单和代理令牌。(也与“当地”大师合作)

spark.yarn.principal

(没有)

在安全的HDFS上运行时使用Principal来登录KDC。(也与“当地”大师合作)

spark.yarn.kerberos.relogin.period

1米

多久检查一次kerberos TGT是否应该更新。这应该设置为比TGT更新周期短的值(或者如果未启用TGT续订,则TGT寿命周期)。大多数部署的默认值应该足够了。

spark.yarn.config.gatewayPath

(没有)

在网关主机(启动Spark应用程序的主机)上有效的路径,但对于群集中其他节点中相同资源的路径可能会有所不同。再加上 spark.yarn.config.replacementPath,它用于支持具有异构配置的群集,以便Spark可以正确启动远程进程。

替换路径通常会包含对由YARN导出的某个环境变量的引用(并且因此对Spark容器可见)。

例如,如果网关节点上安装了Hadoop库/disk1/hadoop,并且YARN将Hadoop安装的位置作为HADOOP_HOME 环境变量导出,那么 将该值设置为/disk1/hadoop以及将替换路径设置为$HADOOP_HOME将确保用于启动远程进程的路径正确引用本地YARN配置。

spark.yarn.config.replacementPath

(没有)

spark.yarn.config.gatewayPath

spark.security.credentials.${service}.enabled

true

控制在启用安全性时是否获取服务凭据。默认情况下,在配置这些服务时检索所有受支持服务的凭证,但如果与正在运行的应用程序发生冲突,则可以禁用该行为。有关更多详细信息,请参阅[在安全群集中运行](running-on-yarn.html#运行在安全群集中)

spark.yarn.rolledLog.includePattern

(没有)

Java Regex过滤与定义的包含模式和这些日志文件相匹配的日志文件将以滚动方式聚合。这将与YARN的滚动日志聚合一起使用,以便yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds在yarn-site.xml中配置YARN端的此功能 。此功能只能用于Hadoop 2.6.4+。Spark log4j appender需要更改为使用FileAppender或另一个可以处理正在运行的文件的appender。根据log4j配置中配置的文件名(如spark.log),用户应该设置正则表达式(spark *)以包含所有需要聚合的日志文件。

spark.yarn.rolledLog.excludePattern

(没有)

Java Regex过滤与定义的排除模式匹配的日志文件,这些日志文件不会以滚动方式聚合。如果日志文件名称与include和exclude模式都匹配,则最终将排除该文件。

重要笔记