主要内容

本页采用了机器翻译。点击此处可查看最新英文版本。

matlab.compiler.mlspark.SparkConf 类

命名空间: matlab.compiler.mlspark
超类:

使用 Spark 参数作为键-值对组来配置应用程序的接口类

描述

SparkConf 对象存储部署到 Spark™ 的应用程序的配置参数。每个应用程序在 Spark 集群上部署之前都必须进行配置。配置参数通过 SparkContext 传递到 Spark 集群。

构造

conf = matlab.compiler.mlspark.SparkConf('AppName',name,'Master',url,'SparkProperties',prop) 使用指定的配置参数创建一个 SparkConf 对象。

conf = matlab.compiler.mlspark.SparkConf(___,Name,Value) 创建一个 SparkConf 对象,该对象具有由一个或多个 Name,Value 对组参量指定的附加配置参数。Name 是类的属性名称,Value 是相应的值。Name 必须出现在单引号 ('') 内。您可以按任意顺序指定多个名称-值对参量,如 Name1,Value1,...,NameN,ValueN

输入参量

全部展开

应用程序的名称以单引号 ('') 内的字符向量形式指定。

示例: 'AppName', 'myApp'

数据类型: char | string

主 URL 的名称以单引号 ('') 内的字符向量形式指定。

URL描述
local

使用一个工作进程线程在本地运行 Spark。选择此选项则没有并行性。

local[K]

使用 K 工作进程线程在本地运行 Spark。将 K 设置为您的计算机的核心数。

local[*]

使用与计算机上的逻辑核心一样多的工作进程线程在本地运行 Spark。

yarn-client以客户端模式连接到 Hadoop® YARN 集群。根据 HADOOP_CONF_DIRYARN_CONF_DIR 变量找到集群位置。

示例: 'Master', 'yarn-client'

数据类型: char | string

一个 containers.Map 对象,包含 Spark 配置属性作为键-值对组。

注意

当使用 MATLAB API for Spark 部署到本地集群时,可以在构造 'SparkProperties' 对象期间忽略 SparkConf 属性名称,从而无需为 prop 设置任何值。或者您可以将 prop 设置为一个空的 containers.Map 对象,如下所示:

'SparkProperties',containers.Map({''},{''})
containers.Map 对象的键和值是空的 char 向量。

部署到 Hadoop YARN 集群时,使用适当的 Spark 配置属性将 prop 的值设置为键-值对组。根据部署集群环境,Spark 配置属性的精确集合因部署场景而异。用户必须与系统管理员验证 Spark 设置才能使用适当的配置属性。请参阅常用的 Spark 属性表。有关完整属性集,请参阅最新的 Spark 文档。

在 YARN 上运行 Spark

属性名称(键)默认(值)描述
spark.executor.cores1

每个执行器上使用的核心数。

仅适用于 YARN 和 Spark 独立模式。在 Spark 独立模式下,设置此参数允许应用程序在同一个工作进程上运行多个执行器,前提是该工作进程上有足够的核心。否则,每个应用程序在每个工作进程上只运行一个执行器。

spark.executor.instances2

执行程序的数目。

注意

此属性与 spark.dynamicAllocation.enabled 不兼容。如果同时指定了 spark.dynamicAllocation.enabledspark.executor.instances,则关闭动态分配并使用指定数量的 spark.executor.instances

spark.driver.memory

  • 1g

  • 2048m(推荐)

驱动进程使用的内存量。

如果在使用 tall/gather 时出现任何内存不足错误,请考虑增加此值。

spark.executor.memory

  • 1g

  • 2048m(推荐)

每个执行器进程使用的内存量。

如果在使用 tall/gather 时出现任何内存不足错误,请考虑增加此值。

spark.yarn.executor.memoryOverhead

  • executorMemory * 0.10,最小值为 384

  • 4096m(推荐)

每个执行器分配的堆外内存量(以 MB 为单位)。

如果在使用 tall/gather 时出现任何内存不足错误,请考虑增加此值。

spark.dynamicAllocation.enabledfalse

此选项将 Spark 与 YARN 资源管理集成。SparkSpark 根据执行器内存需求和核心数量启动尽可能多的执行器。此属性要求设置集群。

将此属性设置为 true 可指定是否使用动态资源分配,根据工作负载增加或减少在此应用程序中注册的执行器的数量。

此属性需要设置 spark.shuffle.service.enabled。以下配置也相关:spark.dynamicAllocation.minExecutorsspark.dynamicAllocation.maxExecutorsspark.dynamicAllocation.initialExecutors

spark.shuffle.service.enabledfalse

启用外部乱序处理服务。该服务保留执行器写入的 shuffle 文件,以便可以安全地删除执行器。如果 spark.dynamicAllocation.enabled 设置为 true,则必须启用此功能。必须设置外部随机播放服务才能启用它。

MATLAB 的特定属性

属性名称(键)默认(值)描述
spark.matlab.worker.debugfalse仅适用于独立/交互模式。如果设置为 true,则在 MATLAB 桌面环境内执行的 Spark 可部署 MATLAB 应用程序将作为工作进程启动另一个 MATLAB 会话,并进入调试器。日志信息直接发送到 log_<nbr>.txt
spark.matlab.worker.reusetrue当设置为 true 时,Spark 执行器会将工作单元集中起来,并在一个阶段到下一个阶段重用它们。当运行工作进程工作进程终止。
spark.matlab.worker.profilefalse仅在使用 MATLAB 会话作为工作进程时有效。当设置为 true 时,它会打开 MATLAB Profiler 并生成保存到文件 profworker_<split_index>_<socket>_<worker pass>.mat 配置文件报告。
spark.matlab.worker.numberOfKeys10000在将地图数据溢出到文件之前执行 containers.Map 操作时,*ByKey 对象可以保存的唯一键的数量。
spark.matlab.executor.timeout600000

Spark 执行器超时(以毫秒为单位)。部署 tall 数组时不适用。

监控和记录

属性名称(键)默认(值)描述
spark.history.fs.logDirectoryfile:/tmp/spark-events

包含历史服务器要加载的应用程序事件日志的目录。

spark.eventLog.dirfile:///tmp/spark-events

如果 spark.eventLog.enabledtrue,则记录 Spark 事件的基本目录。在这个基础目录中,Spark 为每个应用程序创建一个子目录,并将特定于该应用程序的事件记录在此目录中。您可以将其设置为统一位置(如 HDFS™ 目录),以便历史服务器可以读取历史文件。

spark.eventLog.enabledfalse

是否记录 Spark 事件。这对于应用程序完成后重建 Web UI 很有用。

数据类型: char

名称-值参数

全部展开

Name1=Value1,...,NameN=ValueN 的形式指定可选参量对组,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。

如果使用的是 R2021a 之前的版本,请使用逗号分隔每个名称和值,并用引号将 Name 引起来。

containers.Map 对象形式指定键-值对组的映射。

示例: 'ExecutorEnv', containers.Map({'SPARK_JAVA_OPTS'}, {'-Djava.library.path=/my/custom/path'})

一个字符向量,在单引号 '' 内指定 MATLAB Runtime 的路径。

示例: 'MCRRoot', '/share/MATLAB/MATLAB_Runtime/R2025a'

数据类型: char | string

属性

此类的属性是隐藏的。

方法

此类没有用户可执行的方法。

示例

全部折叠

SparkConf 类允许您使用 Spark 参数作为键-值对组来配置应用程序。

sparkProp = containers.Map({'spark.executor.cores'}, {'1'});
conf = matlab.compiler.mlspark.SparkConf('AppName','myApp', ...
                        'Master','local[1]','SparkProperties',sparkProp);

详细信息

全部展开

参考资料

有关更多信息,请参阅最新的 Spark 文档。

版本历史记录

在 R2016b 中推出