主要内容

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

matlab.mapreduce.DeploySparkMapReducer 类

命名空间: matlab.mapreduce
超类:

使用 Spark 参数作为键-值对组来配置 MATLAB tall 数组应用程序

描述

DeploySparkMapReducer 对象存储部署到 Spark™ tall 数组应用程序的配置参数。每个 tall 数组应用程序在部署到 Spark 集群之前都必须进行配置。一些配置参数定义了应用程序的属性,一些被 Spark 用于在集群上分配资源。配置参数通过 mapreducer 函数传递到 Spark 集群。

构造

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

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

输入参量

全部展开

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

示例: 'AppName', 'myApp'

数据类型: char | string

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

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

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

数据类型: char | string

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

部署到 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 很有用。

名称-值参数

全部展开

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

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

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

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

数据类型: char | string

指定要设置为字符向量的日志级别,并将日志级别括在 '' 中。

数据类型: char | string

属性

此类的属性是隐藏的。

方法

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

示例

全部折叠

定义 Spark 属性并创建 DeploySparkMapReducer 对象。

sparkProperties = containers.Map( ...
 {'spark.executor.cores', ...
 'spark.executor.memory', ...
 'spark.yarn.executor.memoryOverhead', ...
 'spark.dynamicAllocation.enabled', ...
 'spark.shuffle.service.enabled', ...
 'spark.eventLog.enabled', ...
 'spark.eventLog.dir'}, ...
 {'1', ...
  '2g', ...
  '1024', ...
  'true', ...
  'true', ...
  'true', ...
  'hdfs://hadoopfs:54310/user/<username>/sparkdeploy'});

conf = matlab.mapreduce.DeploySparkMapReducer( ...
      'AppName','myTallApp', ...
      'Master','yarn-client', ...
      'SparkProperties',sparkProperties);

mapreducer(conf);

版本历史记录

在 R2016b 中推出