主要内容

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

将 Tall 数组部署到启用 CLOUDERA SparkHadoop 集群

此示例说明如何将包含 tall 数组的 MATLAB® 应用程序部署到启用 CLOUDERA® Spark™ Hadoop® 集群。

针对 Spark 的 MATLAB 发行版部署 CLOUDERA 应用程序需要使用 mcc 命令生成的特殊包装器类型。该包装器类型生成一个 jar 文件以及调用 spark-submit shell 脚本。Spark spark-submit 目录中的 bin 脚本用于在集群上启动应用程序。它同时支持 yarn-client 模式和 yarn-cluster 模式。

应用程序的输入包括:

  • master - Spark 集群的 URL

  • inputFile - 包含输入数据的文件

  • outputFile - 包含计算结果的文件

注意

此示例的完整代码位于文件 meanArrivalDemo.m 中,如下所示。

 meanArrivalDemo.m

前提条件

  1. 在桌面上的默认位置安装 MATLAB Runtime。此示例使用 /usr/local/MATLAB/MATLAB_Runtime/R2025a 作为 MATLAB Runtime 的默认位置。如果您没有 MATLAB Runtime,请参阅下载并安装 MATLAB Runtime了解安装说明。

  2. 在每个工作进程节点上安装 MATLAB Runtime

  3. airlinesmall.csv 从 MATLAB 安装区域的文件夹 toolbox/matlab/demos 复制到 Hadoop 分布式文件系统 (HDFS™) 文件夹 /datasets/airlinemod

部署 tall 数组

  1. 在 MATLAB 命令提示符下,使用 mcc 命令为 MATLAB 应用程序 jar 生成 meanArrivalDemo.m 文件和 shell 脚本。

    >> mcc -vCW 'Spark:meanArrivalDemoApp' meanArrivalDemo.m

    此操作将创建一个名为 jarmeanArrivalDempApp.jar 文件和一个名为 run_meanArrivalDemoApp.sh shell 脚本。

    注意

    要使用 shell 脚本,请设置环境变量 HADOOP_PREIXHADOOP_CONF_DIRSPARK_HOME

  2. 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 中的特定位置。