属性名称 | 默认值 | 含义 |
---|---|---|
spark.yarn.am.memory | 512m | 在客户端模式下用于 YARN Application Master 的内存量,与 JVM 内存字符串格式相同(例如,512m,2g)。在集群模式下, 请改用 spark.driver.memory。 使用小写字母尾后缀,例如,k,m,g,t 和 p,分别表示 kibi-,mebi-,gibi-,tebi-,和 pebibytes。 |
spark.driver.memory | 1g | 用于驱动程序进程(driver process)的内存量,即初始化 SparkContext 的位置。(例如 1g,2g)。 注意:在客户端模式下,不能通过 SparkConf 直接在应用程序中设置此配置,因为驱动程序 JVM 已在此时启动。相反, 请通过 --driver-memory 命令选项或者在默认属性文件中进行设置。 |
spark.driver.cores | 1 | 驱动程序在 YARN 集群模式下使用的核数。由于驱动程序在集群模式下在与 YARN Application Master 相同的 JVM 中 运行,因此还会控制 YARN Application Master 使用的核数。在客户端模式下,使用 spark.yarn.am.cores 来控制 YARN Application Master 使用的核数。 |
spark.yarn.am.cores | 1 | 在客户端模式下用于 YARN Application Master 的核数。在集群模式下,请改用 spark.driver.cores 。 |
spark.yarn.am.waitTime | 100s | 在集群模式下,YARN Application Master 等待 SparkContext 初始化的时间。在客户端模式下,YARN Application Master 等待驱动程序(driver)连接到它的时间。 |
spark.yarn.submit.file.replication | HDFS 默认的备份数 (通常为 3) |
用于应用程序上传到 HDFS 的文件的 HDFS 副本级别。这些包括诸如 Spark jar ,app jar, 和任何分布式缓存文件/归档 之类的东西。 |
spark.yarn.stagingDir | 文件系统中当前用户的 主目录 |
提交应用程序时使用的临时目录。 |
spark.yarn.preserve.staging.files | false | 设置为 true 以便在作业结束保留暂存文件(Spark jar, app jar,分布式缓存文件),而不是删除它们。 |
spark.yarn.scheduler.heartbeat.interval-ms | 3000 | Spark application master 心跳到 YARN ResourceManager 中的间隔(以毫秒为单位)。该值的上限为到期时间间隔的 YARN 配置值的一半,即 yarn.am.liveness-monitor.expiry-interval-ms 。 |
spark.yarn.scheduler.initial-allocation.interval | 200ms | 当存在未决容器分配请求时,Spark application master 心跳到 YARN ResourceManager 的初始间隔。它不应大于 spark.yarn .scheduler.heartbeat.interval-ms。如果挂起的容器仍然存在,直到达到 spark.yarn.scheduler.heartbeat.interval-ms,则连续 的心跳的分配间隔将加倍。 |
spark.yarn.max.executor.failures | numExecutors * 2,最小值为 3 | 在应用程序失败(failing the application)之前,执行器失败(executor failures)的最大数量。 |
spark.yarn.historyServer.address | (none) | Spark 历史记录服务器(history server)的地址,例如 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 | (none) | 逗号分隔的要提取到每个执行器(executor)的工作目录(working directory)中的归档列表。 |
spark.yarn.dist.files | (none) | 要放到每个执行器(executor)的工作目录(working directory)中的以逗号分隔的文件列表。 |
spark.yarn.dist.jars | (none) | 要放到每个执行器(executor)的工作目录(working directory)中的以逗号分隔的 jar 文件列表。 |
spark.executor.cores | 在 YARN 模式下是 1 ,在独立模式下 worker 机器上的所有的可用的核。 |
每个执行器(executor)上使用的核数。仅适用于 YARN 和独立(standalone )模式。 |
spark.executor.instances | 2 | 静态分配的执行器(executor)数量。使用 spark.dynamicAllocation.enabled ,初始的执行器(executor)集至少会是这么大。 |
spark.executor.memory | 1g | 每个执行器(executor)进程使用的内存量(例如 2g ,8g)。 |
spark.yarn.executor.memoryOverhead | 执行器内存(executorMemory)* 0.10 ,最小值为 384 | 要为每个执行器(executor)分配的堆外(off-heap)内存量(以兆字节为单位)。这是内存,例如 VM 开销,内部字符串,其他本机开销等。这往往随着执行器(executor)大小(通常为 6-10%)增长。 |
spark.yarn.driver.memoryOverhead | 驱动程序内存(driverMemory)* 0.10,最小值为 384 | 在集群模式下为每个驱动程序(driver)分配的堆外(off-heap)内存量(以兆字节为单位)。这是内存,例如 VM 开销,内部字符串,其他本机开销等。这往往随着容器(container)大小(通常为 6- 10%)增长。 |
spark.yarn.am.memoryOverhead | AM 内存(AM Memory) * 0.10,最小 384 | 与 spark.yarn.driver.memoryOverhead 相同,但是适用于客户端模式下的 YARN Application Master 。 |
spark.yarn.am.port | (random) | 被 YARN Application Master 监听的端口。在 YARN 客户端模式下,这用于在网关(gateway)上运行的 Spark 驱动程序(driver)和在 YARN 上运行的 YARN Application Master 之间进行通信。在 YARN 集群模式下,这用于动态执行器(executor)功能,其中它处理从调度程序后端的 kill 。 |
spark.yarn.queue | default | 提交应用程序(application)的 YARN 队列名称。 |
spark.yarn.jars | (none) | 包含要分发到 YARN 容器(container)的 Spark 代码的库(libraries)列表。默认情况下, Spark on YARN 将使用本地安装的 Spark jar,但是 Spark jar 也可以在 HDFS 上的一个任何位置都可读的位置。这允许 YARN 将其缓存在节点上,使得它不需要在每次运行应用程序时分发。例如,要指向 HDFS 上的 jars ,请将此配置设置为 hdfs:///some/path。允许使用 globs 。 |
spark.yarn.archive | (none) | 包含所需的 Spark jar 的归档(archive),以分发到 YARN 高速缓存。如果设置,此配置将替换 spark.yarn.jars,并且归档(archive)在所有的应用程序(application)的容器(container)中使用。归档(archive)应该在其根目录中包含 jar 文件。与以前的选项一样,归档也可以托管在 HDFS 上以加快文件分发速度。 |
spark.yarn.access.namenodes | (none) | 以逗号分隔的 Spark 应用程序要访问的安全的 HDFS namenodes 列表。例如 : spark.yarn.access.namenodes=hdfs://nn1.com:8032,hdfs://nn2.com:8032,webhdfs://nn3.com:50070。Spark 应用程序必须具有对列出的 namenode 的访问权限,并且 Kerberos 必须正确配置为能够访问它们(在同一领域(realm)或者在可信领域(trusted realm))。 Spark 为每个 namenode 获取安全令牌(security tokens),以便 Spark application 可以访问这些远程的 HDFS 集群。 |
spark.yarn.appMasterEnv.[EnvironmentVariableName] | (none) | 将由 EnvironmentVariableName 指定的环境变量添加到在 YARN 上启动的 Application Master 进程。用户可以指定其中的多个并设置多个环境变量。在集群模式下,这控制 Spark 驱动程序(driver)的环境,在客户端模式下,它只控制执行器(executor)启动器(launcher)的环境。 |
spark.yarn.containerLauncherMaxThreads | 25 | 在 YARN Application Master 中用于启动执行器容器(executor containers)的最大线程(thread)数。 |
spark.yarn.am.extraJavaOptions | (none) | 在客户端模式下传递到 YARN Application Master 的一组额外的 JVM 选项。在集群模式下,请改用 spark.driver.extraJavaOptions。请注意,使用此选项设置最大堆大小(-Xmx)设置是非法的。最大堆大小设置可以使用 spark.yarn.am.memory。 |
spark.yarn.am.extraLibraryPath | (none) | 设置在客户端模式下启动 YARN Application Master 时要使用的特殊库路径(special library path)。 |
spark.yarn.maxAppAttempts | 在 YARN 中 是 yarn.resourcemanager.am.max-attempts | 将要提交应用程序的最大的尝试次数。它应该不大于 YARN 配置中的全局最大尝试次数。 |
spark.yarn.am.attemptFailuresValidityInterval | (none) | 定义 AM 故障跟踪(failure tracking)的有效性间隔。如果 AM 已经运行至少所定义的间隔,则 AM 故障计数将被重置。如果未配置此功能,则不启用此功能,并且仅在 Hadoop 2.6 + 版本中支持此功能。 |
spark.yarn.executor.failuresValidityInterval | (none) | 定义执行器(executor)故障跟踪的有效性间隔。超过有效性间隔的执行器故障(executor failures)将被忽略。 |
spark.yarn.submit.waitAppCompletion | true | 在 YARN 集群模式下,控制客户端是否等待退出,直到应用程序完成。如果设置为 true ,客户端将保持报告应用程序的状态。否则,客户端进程将在提交后退出。 |
spark.yarn.am.nodeLabelExpression | (none) | 一个将调度限制节点 AM 集合的 YARN 节点标签表达式。只有大于或等于 2.6 版本的 YARN 版本支持节点标签表达式,因此在对较早版本运行时,此属性将被忽略。 |
spark.yarn.executor.nodeLabelExpression | (none) | 一个将调度限制节点执行器(executor)集合的 YARN 节点标签表达式。只有大于或等于 2.6 版本的 YARN 版本支持节点标签表达式,因此在对较早版本运行时,此属性将被忽略。 |
spark.yarn.tags | (none) | 以逗号分隔的字符串列表,作为 YARN application 标记中显示的 YARN application 标记传递,可用于在查询 YARN apps 时进行过滤(filtering )。 |
spark.yarn.keytab | (none) | 包含上面指定的主体(principal)的 keytab 的文件的完整路径。此 keytab 将通过安全分布式缓存(Secure Distributed Cache)复制到运行 YARN Application Master 的节点,以定期更新 login tickets 和 delegation tokens。(运行也使用 “local” master)。 |
spark.yarn.principal | (none) | 在安全的 HDFS 上运行时用于登录 KDC 的主体(Principal )。(运行也使用 “local” master)。 |
spark.yarn.config.gatewayPath | (none) | 在网关主机(gateway host)(启动 Spark application 的 host)上有效的路径,但对于集群中其他节点中相同资源的路径可能不同。结合 spark.yarn.config.replacementPath,者用于支持具有异构配置的集群,以便 Spark 可以正确启动远程进程。替换路径(replacement path)通常将包含对由 YARN 导出的某些环境变量(以及,因此对于 Spark 容器可见)的引用。 例如,如果网关节点(gateway node)在 /disk1/hadoop 上安装了 Hadoop 库,并且 Hadoop 安装的位置由 YARN 作为 HADOOP_HOME 环境变量导出,则将此值设置为 /disk1/hadoop ,将替换路径(replacement path)设置为 $HADOOP_HOME 将确保用于启动远程进程的路径正确引用本地 YARN 配置。 |
spark.yarn.config.replacementPath | (none) | 查看 spark.yarn.config.gatewayPath。 |
spark.yarn.security.tokens.${service}.enabled | true | 控制是否在启用安全性时检索非 HDFS 服务的 delegation tokens 。默认情况下,当配置了这些服务时,将检索所有支持的服务的 delegation tokens ,但是如果它以某种方式与正在运行的应用程序冲突,则可以禁用该行为。 目前支持的服务有 : hive,hbase 。 |