主要内容

运行独立程序的示例MATLABMapReduce应用程序

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

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

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

数据集: airlinesmall.csv
描述:

1987-2008年航班离港及抵港信息。

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

先决条件

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

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

    壳牌 命令
    csh / tcsh

    % setenv HADOOP_PREFIX /usr/lib/hadoop

    bash

    美元出口HADOOP_PREFIX = / usr / lib / hadoop

    请注意

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

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

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

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

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

    请注意

    和有关信息。MATLAB运行时版本号对应的MATLAB版本,见此列表

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

    maxArrivalDelayMapper.m

    有关更多信息,请参见编写映射函数

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

    maxArrivalDelayReducer.m

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

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

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

过程

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

    > >采用“HADOOP_PREFIX”

    如果是空的,检讨先决条件,以了解如何设置HADOOP_PREFIX环境变量。

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

  3. 创建一个数据存储指向Hadoop分布式文件系统(HDFS)中的航空数据。

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

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

  4. 使用默认设置配置应用程序,以便针对Hadoop进行部署。

    配置= matlab.mapreduce.DeployHadoopMapReducer;

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

    例如,如果您想指定MATLAB运行时在集群上的每个工作节点上,包含一行类似于这样的代码:

    配置= matlab.mapreduce.DeployHadoopMapReducer (' MCRRoot ', ' / opt / MATLAB / MATLAB_Runtime /v911”);
    在这个场景中,我们假设MATLAB运行时安装在非默认位置,如/ opt / MATLAB / MATLAB_Runtime在工作节点上。

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

    请注意

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

  5. 属性定义执行环境mapreduce

    = mapreduce先生(配置);
  6. 应用mapreduce函数。

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

    请注意

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

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

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

    世纪挑战集团- mdepMapRedStandAlone.m

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

  9. 在Linux shell上运行独立的应用程序,使用以下命令:

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

    /usr/local/MATLAB/MATLAB_Runtime /v911参数是否指示MATLAB运行时

    在执行上述命令之前,请验证HADOOP_PREFIX在终端中设置环境变量,输入:

    echo $ HADOOP_PREFIX
    如果回声空出来了,看见了先决条件,以了解如何设置HADOOP_PREFIX环境变量。

    您的应用程序将无法执行HADOOP_PREFIX未设置环境变量。

  10. 您将看到以下输出:

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

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

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

depMapRedStandAlone.m

另请参阅

||||

相关的话题