将 Tall 数组部署到启用 CLOUDERA Spark 的 Hadoop 集群
此示例说明如何将包含 tall 数组的 MATLAB® 应用程序部署到启用 CLOUDERA® Spark™ Hadoop® 集群。
针对 Spark 的 MATLAB 发行版部署 CLOUDERA 应用程序需要使用 mcc 命令生成的特殊包装器类型。该包装器类型生成一个 jar 文件以及调用 spark-submit shell 脚本。Spark spark-submit 目录中的 bin 脚本用于在集群上启动应用程序。它同时支持 yarn-client 模式和 yarn-cluster 模式。
应用程序的输入包括:
master- Spark 集群的 URLinputFile- 包含输入数据的文件outputFile- 包含计算结果的文件
注意
此示例的完整代码位于文件 meanArrivalDemo.m 中,如下所示。
前提条件
在桌面上的默认位置安装 MATLAB Runtime。此示例使用
/usr/local/MATLAB/MATLAB_Runtime/R2025a作为 MATLAB Runtime 的默认位置。如果您没有 MATLAB Runtime,请参阅下载并安装 MATLAB Runtime了解安装说明。在每个工作进程节点上安装 MATLAB Runtime。
将
airlinesmall.csv从 MATLAB 安装区域的文件夹toolbox/matlab/demos复制到 Hadoop 分布式文件系统 (HDFS™) 文件夹/datasets/airlinemod。
部署 tall 数组
在 MATLAB 命令提示符下,使用
mcc命令为 MATLAB 应用程序jar生成meanArrivalDemo.m文件和 shell 脚本。>> mcc -vCW 'Spark:meanArrivalDemoApp' meanArrivalDemo.m此操作将创建一个名为
jar的meanArrivalDempApp.jar文件和一个名为run_meanArrivalDemoApp.shshell 脚本。注意
要使用 shell 脚本,请设置环境变量
HADOOP_PREIX、HADOOP_CONF_DIR和SPARK_HOME。在
yarn-client模式或yarn-cluster模式下执行 shell 脚本。在yarn-client模式下,驱动在桌面上运行。在yarn-cluster模式下,驱动在集群中的 Application Master 进程中运行。执行 shell 脚本的一般语法是:
./run_meanArrivalDemoApp.sh <runtime install root> [Spark arguments] [Application arguments]
yarn-client模式从 Linux® 终端运行以下命令:
$ ./run_meanArrivalDemoApp.sh \ /usr/local/MATLAB/MATLAB_Runtime/R2025a \ yarn-client \ hdfs://hadoop01glnxa64:54310/datasets/airlinemod/airlinesmall.csv \ hdfs://hadoop01glnxa64:54310/user/someuser/meanArrivalResult要检查结果,请在 MATLAB 命令提示符中输入以下内容:
>> ds = datastore('hdfs:///user/someuser/meanArrivalResult/*'); >> readall(ds)yarn-cluster模式从 Linux 终端运行以下命令:
$ ./run_meanArrivalDemoApp.sh \ /usr/local/MATLAB/MATLAB_Runtime/R2025a \ --deploy-mode cluster --master yarn yarn-cluster \ hdfs://hadoop01glnxa64:54310/datasets/airlinemod/airlinesmall.csv \ hdfs://hadoop01glnxa64:54310/user/someuser/meanArrivalResult
在
yarn-cluster模式下,由于驱动在集群中的工作进程节点上运行,因此 MATLAB 函数的任何标准输出都不会显示在桌面上。此外,文件可以保存在任何地方。为了防止这种行为,此示例使用write函数将结果明确保存到 HDFS 中的特定位置。
