主要内容

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

parallel.cluster.Hadoop

用于 mapreducer、mapreduce 和 tall 数组的 Hadoop 集群

描述

parallel.cluster.Hadoop 对象提供对集群的访问,以配置 mapreducer、mapreduce 和 tall 数组。

属性

parallel.cluster.Hadoop 对象具有以下属性。

属性描述
AdditionalPaths要添加到 MATLAB 工作单元搜索路径的文件夹,指定为字符向量、字符串或字符串数组或字符向量元胞数组
AttachedFilesmapreduce 调用期间发送给工作单元的文件和文件夹,指定为字符向量、字符串或字符串数组或字符向量元胞数组
AutoAttachFiles指定是否自动附加文件
ClusterMatlabRoot指定 MATLAB 的路径,供工作单元使用
HadoopConfigurationFile要提供给 Hadoop 的应用程序配置文件
HadoopInstallFolder本地计算机上 Hadoop 的安装位置
HadoopProperties要提供给 Hadoop 的名称-值属性对的映射
LicenseNumber用于在线许可的许可证号码
RequiresOnlineLicensing指定集群是否使用在线许可
SparkInstallFolderSpark 在本地计算机的安装位置
SparkProperties要提供给 Spark 的名称-值属性对的映射

当您将计算任务卸载到工作单元时,客户端进行计算所需的任何文件也必须在工作单元上可用。默认情况下,客户端会尝试检测并附加这些文件。要关闭自动检测,请将 AutoAttachFiles 属性设置为 false。如果软件无法找到所有文件,或者从客户端向工作单元发送文件的速度很慢,请使用以下选项之一。

  • 如果文件位于工作单元无法访问的文件夹中,请设置 AttachedFiles 属性。集群将您指定的每个文件从客户端复制到工作单元。

  • 如果文件位于工作单元可访问的文件夹中,则可以设置 AdditionalPaths 属性。使用 AdditionalPaths 属性将路径添加到每个工作单元的 MATLAB® 搜索路径,并避免不必要地从客户端复制到工作单元。

HadoopProperties 允许您覆盖 Hadoop 的配置属性。请参阅 Hadoop® 文档中的属性列表。

SparkInstallFolder 默认设置为 SPARK_HOME 环境变量。这对于 Hadoop 上的 tall 数组评估是必需的(但对于 mapreduce 不是)。对于正确配置的集群,您只需设置安装文件夹。

SparkProperties 允许您覆盖 Spark 的配置属性。请参阅 Spark® 文档中的属性列表。

帮助

如需进一步的帮助,请键入:

help parallel.cluster.Hadoop

指定内存属性

Spark 启用了 Hadoop 集群对可用内存量进行限制。您必须调整这些限制以支持您的工作流。

要收集的数据大小

收集到客户端的数据量受到 Spark 属性的限制:

  • spark.driver.memory

  • spark.executor.memory

从单个 Spark 任务收集的数据量必须符合这些属性。单个 Spark 任务处理来自 HDFS 的一个数据块,默认情况下为 128 MB 数据。如果您收集包含大部分原始数据的 tall 数组,则必须确保这些属性设置为适合。

如果这些属性设置得太小,您会看到如下错误。

Error using tall/gather (line 50)
Out of memory; unable to gather a partition of size 300m from Spark.
Adjust the values of the Spark properties spark.driver.memory and 
spark.executor.memory to fit this partition.
错误消息还指定了您需要的属性设置。

在集群的默认设置中或直接在 MATLAB 中调整属性。要调整 MATLAB 中的属性,请将名称-值对添加到集群的 SparkProperties 属性。例如:

cluster = parallel.cluster.Hadoop;
cluster.SparkProperties('spark.driver.memory') = '2048m';
cluster.SparkProperties('spark.executor.memory') = '2048m';
mapreducer(cluster);

为 MATLAB 工作单元指定工作内存大小

MATLAB 工作单元的工作内存量受 Spark 属性限制:

  • spark.yarn.executor.memoryOverhead

默认情况下,设置为 2.5 GB。如果您使用 arrayfuncellfun 或自定义数据存储一次性生成大量数据,则通常需要增加此值。如果遇到 Spark Executor 进程丢失或崩溃的情况,建议增加此值。

您可以在集群的默认设置中或直接在 MATLAB 中调整这些属性。要调整 MATLAB 中的属性,请将名称-值对添加到集群的 SparkProperties 属性。例如:

cluster = parallel.cluster.Hadoop; 
cluster.SparkProperties('spark.yarn.executor.memoryOverhead') = '4096m';
mapreducer(cluster);

版本历史记录

在 R2014b 中推出