主要内容

独立的运行MATLABMapReduce应用程序

金宝app支持平台:Linux®只有。

这个例子向您展示了如何创建一个独立的MATLAB®MapReduce应用世纪挑战集团命令并在Hadoop上运行它®集群。

目标:从给定的数据集中计算航空公司的最大到达延迟。

数据集: airlinesmall.csv
描述:

1987-2008年离港及抵港航班资料。

地点: /usr/local/MATLAB/R2022b/工具箱/ matlab /演示

先决条件

  1. 通过创建一个对MATLAB搜索路径可见的新工作文件夹开始本示例。

  2. 在启动MATLAB之前,在终端上设置环境变量HADOOP_PREFIX指向Hadoop安装文件夹。例如:

    壳牌 命令
    CSH / TCSH

    setenv hadoop前缀/usr/lib/hadoop

    bash

    $ export HADOOP_PREFIX=/usr/lib/hadoop . txt

    请注意

    这个例子使用了/usr/lib/hadoop安装Hadoop的目录。您的Hadoop安装目录可能不同。

    如果你忘记设置HADOOP_PREFIX环境变量在启动MATLAB之前,使用MATLAB函数设置它setenv在MATLAB命令提示符下运行。例如:

    setenv (“HADOOP_PREFIX”“/ usr / lib / hadoop”

  3. 安装MATLAB运行时在Hadoop集群中每个工作节点都可以访问的文件夹中。这个例子使用了/usr/local/MATLAB/MATLAB_Runtime /R2022b作为位置的MATLAB运行时文件夹中。

    如果你没有MATLAB运行时,你可从以下网址下载://www.tatmou.com/下载188bet金宝搏products/compiler/mcr

    请注意

    有关MATLAB运行时对应的MATLAB版本号,请看这个列表

  4. 复制映射函数maxArrivalDelayMapper.m/usr/local/MATLAB/R2022b/工具箱/ matlab /演示文件夹到工作文件夹。

    maxArrivalDelayMapper.m

    有关更多信息,请参见写地图

  5. 复制reduce函数maxArrivalDelayReducer.mmatlabroot/工具箱/ matlab /演示文件夹到工作文件夹。

    maxArrivalDelayReducer.m

    有关更多信息,请参见写一个Reduce函数

  6. 创建目录/ user /<用户名>/数据集在HDFS™上复制文件airlinesmall.csv到那个目录。在这里<用户名>指的是您在HDFS中的用户名。

    ./hadoop fs -copyFromLocal airlinsmalll .csv hdfs://host:54310/user/<用户名>/数据集

过程

  1. 启动MATLAB并验证HADOOP_PREFIX已设置环境变量。在命令提示符下,输入:

    > >采用“HADOOP_PREFIX”

    如果是空的,检讨了吗先决条件部分中查看如何设置HADOOP_PREFIX环境变量。

  2. 创建一个新的MATLAB脚本depMapRedStandAlone.m.您将把下面步骤中列出的代码添加到这个脚本文件中。

  3. 创建一个数据存储指向HDFS中的航空公司数据。

    数据存储(hdfs: / / /用户/用户名/数据/ airlinesmall.csv”...“TreatAsMissing”“NA”...“SelectedVariableNames”,{“UniqueCarrier”“ArrDelay”});

    有关更多信息,请参见使用远程数据

  4. 使用默认设置配置在Hadoop上部署的应用程序。

    config = matlab.mapreduce.DeployHadoopMapReducer;

    matlab.mapreduce.DeployHadoopMapReducer可以用于配置基于将要部署的Hadoop环境的独立应用程序。

    类的位置MATLAB运行时在集群中的每个工作节点上,包含一行类似于这样的代码:

    config = MATLAB .mapreduce. deployhadoopmapreducer ('MCRRoot','/opt/MATLAB/MATLAB_Runtime/ . config ')R2022b”);
    在这种情况下,我们假设MATLAB运行时安装在非默认位置,如/ opt / MATLAB / MATLAB_Runtime在工作节点上。

    有关指定其他特定于集群的属性的信息,请参见matlab.mapreduce.DeployHadoopMapReducer

    请注意

    指定一个MATLAB运行时Location作为类的一部分matlab.mapreduce.DeployHadoopMapReducer将覆盖任何MATLAB运行时在执行独立应用程序期间指定的位置。

  5. 属性定义执行环境mapreduce

    Mr = mapreducer(config);
  6. 应用mapreduce函数。

    结果= mapreduce(...ds,...@maxArrivalDelayMapper @maxArrivalDelayReducer,...先生,...“OutputType”“二元”...“OutputFolder”hdfs: / / / user / <用户名> /结果/ myresults ');

    请注意

    HDFS目录,例如…/ myresults只能被写入一次。如果计划在Hadoop集群上多次运行独立应用程序,请确保删除…/ myresults在每次执行之前在HDFS上的目录。的名称…/ myresults目录中的MATLAB代码并重新编译应用程序。

  7. 从结果数据存储中读取结果。

    myAppResult = readall(结果)
  8. 使用世纪挑战集团命令使用- m标志以创建独立应用程序。

    世纪挑战集团- mdepMapRedStandAlone.m

    - mFlag创建一个可以从命令行运行的标准可执行文件。然而,世纪挑战集团命令不能将结果打包到安装程序中。

  9. 使用以下命令从Linux shell运行独立应用程序:

    。/ run_depMapRedStandAlone.sh /usr/local/MATLAB/MATLAB_Runtime /R2022b

    /usr/local/MATLAB/MATLAB_Runtime /R2022b参数是否指示的位置MATLAB运行时

    在执行上述命令之前,请检查HADOOP_PREFIX环境变量在终端中通过输入:

    echo $ HADOOP_PREFIX
    如果回声空出来了,看到了先决条件部分中查看如何设置HADOOP_PREFIX环境变量。

    属性将导致应用程序执行失败HADOOP_PREFIX未设置环境变量。

  10. 界面显示如下:

    myAppResult =键值  _________________ ______ ' MaxArrivalDelay”[1014]

其他例子地图而且减少有关功能可在工具箱/ matlab /演示文件夹中。您可以使用其他示例来创建在Hadoop上运行的类似独立应用程序的原型。有关更多信息,请参见用MapReduce构建有效的算法

独立应用程序的完整代码depMapRedStandAlone可在这里找到:

depMapRedStandAlone.m

另请参阅

||||

相关的话题