spark提交参数 [spark.yarn.dist.jars] 和 [spark.yarn.jars ]区别
spark.yarn.dist.jars
- 作用
用于指定分发到集群节点上的 JAR 包的路径。
- 工作原理
Spark 应用程序的执行器会将这些 JAR 包分发到它们的本地文件系统上。这样,应用程序可以在执行期间访问这些 JAR 包。
- 使用场景
适用于应用程序的依赖项,这些依赖项不需要在整个集群中共享。通常,这些是较小的依赖项,可以存储在每个节点上以减少网络开销。
- 示例
spark-submit --class YourMainClass --master yarn --deploy-mode cluster --conf spark.yarn.dist.jars=hdfs:///path/to/your/dependency.jar YourApp.jar
spark.yarn.jars
- 作用
用于指定在运行 Spark 应用程序时需要上传到集群的 JAR 包的路径。
- 工作原理
Spark 会将应用程序的 JAR 包上传到 Hadoop 分布式缓存中,以确保集群中的所有节点都能够访问它。
- 使用场景
适用于应用程序的主要 JAR 包,这些 JAR 包可能包含应用程序的代码和主要逻辑。
- 示例
spark-submit --class YourMainClass --master yarn --deploy-mode cluster --conf spark.yarn.jars=hdfs:///path/to/your/app.jar YourApp.jar
总结:
- 如果你有一些较小的依赖项,可以使用spark.yarn.dist.jars,这样它们就会分发到集群节点上,每个节点都会有一份。
- 如果你有一个主要的应用程序 JAR 包,需要在整个集群中共享,可以使用spark.yarn.jars,这样 Spark 会确保在所有节点上都能访问它。
附sprak官网参数表格机翻:
Property Name
|
Default
|
Meaning
|
Since Version
|
spark.yarn.am.memory
|
512m
|
客户端模式下 YARN Application Master 使用的内存量,格式与 JVM 内存字符串相同(例如 512m 、 2g )。在集群模式下,请使用 spark.driver.memory 代替。Use lower-case suffixes, e.g. k, m, g, t, and p, for kibi-, mebi-, gibi-, tebi-, and pebibytes, respectively.使用小写后缀,例如 k 、 m 、 g 、 t 和 p ,用于 kibi-、mebi-、gibi-分别为 、tebi- 和 pebibytes。
|
1.3.0
|
spark.yarn.am.resource.{resource-type}.amount
|
(none)
|
在客户端模式下用于 YARN Application Master 的资源量。在集群模式下,请使用 spark.yarn.driver.resource..amount 代替。请注意,此功能只能与 YARN 3.0+ 一起使用。有关参考,请参阅 YARN 资源模型文档:https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/ResourceModel.html
|
3.0.0
|
spark.yarn.applicationType
|
SPARK
|
定义更具体的应用程序类型,例如 SPARK 、 SPARK-SQL 、 SPARK-STREAMING 、 SPARK-MLLIB 和 SPARK-GRAPH 。请注意不要超过 20 个字符。
|
3.1.0
|
spark.yarn.driver.resource.{resource-type}.amount
|
(none)
|
集群模式下 YARN Application Master 使用的资源量。请注意,此功能只能与 YARN 3.0+ 一起使用。有关参考,请参阅 YARN 资源模型文档:https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/ResourceModel.html
|
3.0.0
|
spark.yarn.executor.resource.{resource-type}.amount
|
(none)
|
每个执行程序进程使用的资源量。请注意,此功能只能与 YARN 3.0+ 一起使用。有关参考,请参阅 YARN 资源模型文档:https://hadoop.apache.org/docs/current/hadoop-yarn/hadoop-yarn-site/ResourceModel.html
|
3.0.0
|
spark.yarn.resourceGpuDeviceName
|
yarn.io/gpu
|
指定 Spark 资源类型 gpu 到表示 GPU 的 YARN 资源的映射。默认情况下,YARN 使用 yarn.io/gpu ,但如果 YARN 已配置自定义资源类型,则允许重新映射它。使用 spark.{driver/executor}.resource.gpu.* 配置时适用。
|
3.2.1
|
spark.yarn.resourceFpgaDeviceName
|
yarn.io/fpga
|
指定 Spark 资源类型 fpga 到代表 FPGA 的 YARN 资源的映射。默认情况下,YARN 使用 yarn.io/fpga ,但如果 YARN 已配置自定义资源类型,则允许重新映射它。使用 spark.{driver/executor}.resource.fpga.* 配置时适用。
|
3.2.1
|
spark.yarn.am.cores
|
1
|
客户端模式下用于 YARN Application Master 的内核数。在集群模式下,请使用 spark.driver.cores 代替。
|
1.3.0
|
spark.yarn.am.waitTime
|
100s
|
仅用于 cluster 模式。 YARN Application Master等待SparkContext初始化的时间。
|
1.3.0
|
spark.yarn.submit.file.replication
|
The default HDFS replication (usually3)
|
应用程序上传到 HDFS 的文件的 HDFS 复制级别。其中包括 Spark jar、应用程序 jar 和任何分布式缓存文件/档案。
|
0.8.1
|
spark.yarn.stagingDir
|
Current user's home directory in the filesystem
|
提交应用程序时使用的暂存目录。
|
2.0.0
|
spark.yarn.preserve.staging.files
|
false
|
设置为 true 以在作业结束时保留暂存文件(Spark jar、应用程序 jar、分布式缓存文件)而不是删除它们。
|
1.1.0
|
spark.yarn.scheduler.heartbeat.interval-ms
|
3000
|
Spark 应用程序主节点向 YARN ResourceManager 发出心跳的时间间隔(以毫秒为单位)。该值的上限为 YARN 配置的到期间隔值的一半,即 yarn.am.liveness-monitor.expiry-interval-ms 。
|
0.8.1
|
spark.yarn.scheduler.initial-allocation.interval
|
200ms
|
当存在待处理的容器分配请求时,Spark 应用程序主机急切地向 YARN ResourceManager 发出心跳的初始时间间隔。它不应大于 spark.yarn.scheduler.heartbeat.interval-ms 。如果挂起的容器仍然存在,分配间隔将在连续的急切心跳上加倍,直到达到 spark.yarn.scheduler.heartbeat.interval-ms 。
|
1.4.0
|
spark.yarn.max.executor.failures
|
numExecutors * 2, with minimum of 3
|
应用程序失败之前执行程序失败的最大次数。
|
1.0.0
|
spark.yarn.historyServer.address
|
(none)
|
Spark历史服务器的地址,例如 host.com:18080 。地址不应包含方案 ( http:// )。默认情况下不设置,因为历史服务器是可选服务。当 Spark 应用程序完成将应用程序从 ResourceManager UI 链接到 Spark 历史服务器 UI 时,此地址将提供给 YARN ResourceManager。对于此属性,YARN 属性可以用作变量,并且这些属性在运行时由 Spark 替换。例如,如果 Spark 历史服务器与 YARN ResourceManager 运行在同一节点上,则可以将其设置为 ${hadoopconf-yarn.resourcemanager.hostname}:18080 。
|
1.0.0
|
spark.yarn.dist.archives
|
(none)
|
要提取到每个执行器的工作目录中的逗号分隔的档案列表。
|
1.0.0
|
spark.yarn.dist.files
|
(none)
|
要放置在每个执行程序的工作目录中的以逗号分隔的文件列表。
|
1.0.0
|
spark.yarn.dist.jars
|
(none)
|
要放置在每个执行程序的工作目录中的以逗号分隔的 jar 列表。
|
2.0.0
|
spark.yarn.dist.forceDownloadSchemes
|
(none)
|
以逗号分隔的方案列表,资源将在添加到 YARN 的分布式缓存之前下载到本地磁盘。用于 YARN 服务不支持 Spark 支持的方案(例如 http、https 和 ftp)或需要位于本地 YARN 客户端类路径中的 jar 的情况。通配符“*”表示下载所有方案的资源。
|
2.3.0
|
spark.executor.instances
|
2
|
静态分配的执行器数量。对于 spark.dynamicAllocation.enabled ,初始执行器集至少有这么大。
|
1.0.0
|
spark.yarn.am.memoryOverhead
|
AM memory * 0.10, with minimum of 384
|
与 spark.driver.memoryOverhead 相同,但适用于客户端模式下的 YARN Application Master
|
1.3.0
|
spark.yarn.queue
|
default
|
应用程序提交到的 YARN 队列的名称。
|
1.0.0
|
spark.yarn.jars
|
(none)
|
包含要分发到 YARN 容器的 Spark 代码的库列表。默认情况下,Spark on YARN 将使用本地安装的 Spark jar,但 Spark jar 也可以位于 HDFS 上的全局可读位置。这允许 YARN 将其缓存在节点上,这样就不需要在每次应用程序运行时进行分发。例如,要指向 HDFS 上的 jar,请将此配置设置为
hdfs:///some/path 。允许使用 Glob。
|
2.0.0
|
spark.yarn.archive
|
(none)
|
包含分发到 YARN 缓存所需的 Spark jar 的存档。如果设置,此配置将替换 spark.yarn.jars 并且存档将在应用程序的所有容器中使用。归档文件的根目录中应包含 jar 文件。与前一个选项一样,存档也可以托管在 HDFS 上以加快文件分发速度。
|
2.0.0
|
spark.yarn.appMasterEnv.[EnvironmentVariableName]
|
(none)
|
将 EnvironmentVariableName 指定的环境变量添加到YARN上启动的Application Master进程中。用户可以指定其中的多个并设置多个环境变量。在 cluster 模式下,它控制 Spark 驱动程序的环境,在 client 模式下,它仅控制执行程序启动器的环境。
|
1.1.0
|
spark.yarn.containerLauncherMaxThreads
|
25
|
YARN Application Master 中用于启动执行程序容器的最大线程数。
|
1.2.0
|
spark.yarn.am.extraJavaOptions
|
(none)
|
在客户端模式下传递给 YARN Application Master 的一串额外 JVM 选项。在集群模式下,请使用 spark.driver.extraJavaOptions 代替。请注意,使用此选项设置最大堆大小 (-Xmx) 设置是非法的。最大堆大小设置可以通过 spark.yarn.am.memory 设置
|
1.3.0
|
spark.yarn.am.extraLibraryPath
|
(none)
|
设置在客户端模式下启动 YARN Application Master 时使用的特殊库路径。
|
1.4.0
|
spark.yarn.populateHadoopClasspath
|
Forwith-hadoop Spark distribution, this is set to false; for no-hadoop distribution, this is set to true.
|
是否从 yarn.application.classpath 和 mapreduce.application.classpath 填充 Hadoop 类路径 请注意,如果设置为
false ,则需要捆绑 with-Hadoop Spark 发行版Hadoop 运行时或用户必须单独提供 Hadoop 安装。
|
2.4.6
|
spark.yarn.maxAppAttempts
|
yarn.resourcemanager.am.max-attempts
in YARN
|
提交申请的最大尝试次数。它不应大于 YARN 配置中的全局最大尝试次数
|
1.3.0
|
spark.yarn.am.attemptFailuresValidityInterval
|
(none)
|
定义 AM 故障跟踪的有效间隔。如果 AM 已运行至少定义的时间间隔,则 AM 故障计数将被重置。如果未配置,则不会启用此功能。
|
1.6.0
|
spark.yarn.am.clientModeTreatDisconnectAsFailed
|
false
|
将纱线客户端不干净的断开视为失败。在yarn-client模式下,通常应用程序将始终以SUCCESS的最终状态完成,因为在某些情况下,不可能知道应用程序是否被用户故意终止或者是否存在真正的错误。此配置更改了该行为,以便如果应用程序主机不正常地与驱动程序断开连接(即没有正确的关闭握手),应用程序将终止并显示“FAILED”的最终状态。这将允许调用者确定它是否确实失败。请注意,如果设置了此配置并且用户只是错误地终止了客户端应用程序,则可能会显示“FAILED”状态,而实际上并非“FAILED”。
|
3.3.0
|
spark.yarn.am.clientModeExitOnError
|
false
|
在yarn-client模式下,当这是true时,如果驱动程序收到最终状态为KILLED或FAILED的应用程序报告,驱动程序将停止相应的SparkContext并以代码1退出程序。注意,如果这是true并且从另一个应用程序调用,它将同时终止父应用程序。
|
3.3.0
|
spark.yarn.executor.failuresValidityInterval
|
(none)
|
定义执行器故障跟踪的有效间隔。早于有效间隔的执行器故障将被忽略。
|
2.0.0
|
spark.yarn.submit.waitAppCompletion
|
true
|
在 YARN 集群模式下,控制客户端是否等待应用程序完成后再退出。如果设置为
true ,客户端进程将保持活动状态并报告应用程序的状态。否则,客户端进程将在提交后退出。
|
1.4.0
|
spark.yarn.am.nodeLabelExpression
|
(none)
|
限制将在其上调度的节点 AM 集的 YARN 节点标签表达式。只有大于或等于 2.6 的 YARN 版本支持节点标签表达式,因此在针对早期版本运行时,此属性将被忽略。
|
1.6.0
|
spark.yarn.executor.nodeLabelExpression
|
(none)
|
将调度限制节点执行器集的 YARN 节点标签表达式。只有大于或等于 2.6 的 YARN 版本支持节点标签表达式,因此在针对早期版本运行时,此属性将被忽略。
|
1.4.0
|
spark.yarn.tags
|
(none)
|
以逗号分隔的字符串列表,作为 YARN 应用程序标签出现在 YARN 应用程序报告中,可用于在查询 YARN 应用程序时进行过滤。
|
1.5.0
|
spark.yarn.priority
|
(none)
|
YARN的应用优先级定义了待处理的应用排序策略,整数值越高的应用有更好的机会被激活。目前,YARN 仅在使用 FIFO 排序策略时支持应用程序优先级。
|
3.0.0
|
spark.yarn.config.gatewayPath
|
(none)
|
在网关主机(启动 Spark 应用程序的主机)上有效的路径,但集群中其他节点中相同资源的路径可能不同。与
spark.yarn.config.replacementPath 结合使用,用于支持异构配置的集群,以便 Spark 能够正确启动远程进程。
The replacement path normally will contain a reference to some environment variable exported by YARN (and, thus, visible to Spark containers).替换路径通常将包含对 YARN 导出的某些环境变量的引用(因此对 Spark 容器可见)。
|
1.5.0
|
spark.yarn.config.replacementPath
|
(none)
|
请参阅 spark.yarn.config.gatewayPath 。
|
1.5.0
|
spark.yarn.rolledLog.includePattern
|
(none)
|
Java 正则表达式用于过滤与定义的包含模式匹配的日志文件,并且这些日志文件将以滚动方式聚合。这将与 YARN 的滚动日志聚合一起使用,要在 YARN 端启用此功能,应在yarn-site.xml 中配置
yarn.nodemanager.log-aggregation.roll-monitoring-interval-seconds 。 Spark log4j 附加程序需要更改为使用 FileAppender 或另一个可以处理运行时删除的文件的附加程序。根据 log4j 配置中配置的文件名(例如spark.log),用户应设置正则表达式(spark*)以包含需要聚合的所有日志文件。
|
2.0.0
|
spark.yarn.rolledLog.excludePattern
|
(none)
|
Java Regex 用于过滤与定义的排除模式匹配的日志文件,并且这些日志文件不会以滚动方式聚合。如果日志文件名同时匹配包含和排除模式,则该文件最终将被排除
|
2.0.0
|
spark.yarn.executor.launch.excludeOnFailure.enabled
|
false
|
标记以排除存在 YARN 资源分配问题的节点。排除的错误限制可以通过
spark.excludeOnFailure.application.maxFailedExecutorsPerNode 配置
|
2.4.0
|
spark.yarn.exclude.nodes
|
(none)
|
不参与资源分配的 YARN 节点名称的逗号分隔列表。
|
3.0.0
|
spark.yarn.metrics.namespace
|
(none)
|
AM 指标报告的根命名空间。如果未设置,则使用 YARN 应用程序 ID
|
2.4.0
|
spark.yarn.report.interval
|
1s
|
集群模式下当前 Spark 作业状态报告的间隔时间。
|
0.9.0
|
spark.yarn.report.loggingFrequency
|
30
|
记录下一个应用程序状态之前处理的应用程序报告的最大数量。如果状态发生变化,无论处理的申请报告数量如何,都将记录申请状态。
|
3.5.0
|
spark.yarn.clientLaunchMonitorInterval
|
1s
|
启动应用程序时请求客户端模式 AM 状态的时间间隔。
|
2.3.0
|
spark.yarn.includeDriverLogsLink
|
false
|
在集群模式下,客户端应用程序报告是否包含驱动程序容器日志的链接。这需要轮询 ResourceManager 的 REST API,因此它会给 RM 带来一些额外的负载。
|
3.1.0
|
spark.yarn.unmanagedAM.enabled
|
false
|
在客户端模式下,是否使用非托管 am 将应用程序主服务作为客户端的一部分启动。
|
3.0.0
|
spark.yarn.shuffle.server.recovery.disabled
|
false
|
对于具有较高安全性要求并且希望其秘密不保存在数据库中的应用程序,设置为 true。此类应用程序的shuffle数据在External Shuffle Service重启后将无法恢复。
|
本文作者:MuXinu
本文链接:https://www.cnblogs.com/MuXinu/p/17868250.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步