主要内容

独立的运行MATLABMapReduce应用程序

万博1manbetx支持平台:Linux®只有。

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

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

数据集: airlinesmall.csv
描述:

从1987 - 2008年航空出发和到达信息。

地点: /usr/local/MATLAB/R2023a/工具箱/ 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命令提示符一旦你开始MATLAB。例如:

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

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

    如果你没有MATLAB运行时,你可以从网站下载://www.tianjin-qmedu.com/s manbetx 845products/compiler/mcr

    请注意

    和有关信息。MATLAB运行时版本号对应MATLAB版本中,看到这个列表

  4. 副本地图功能maxArrivalDelayMapper.m/usr/local/MATLAB/R2023a/工具箱/ matlab /演示文件夹的工作文件夹。

    maxArrivalDelayMapper.m

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

  5. reduce函数副本maxArrivalDelayReducer.mmatlabroot/工具箱/ matlab /演示文件夹的工作文件夹。

    maxArrivalDelayReducer.m

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

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

    美元hadoop。/ fs -copyFromLocal airlinesmall。csv hdfs: / /主持人:54310 / user /<用户名>/数据集

过程

  1. 开始MATLAB和验证HADOOP_PREFIX环境变量设置。在命令提示符下,类型:

    > > getenv (“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 /R2023a”);
    在这个场景中,我们假设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每个执行前目录HDFS。另一个选择是改变的名称…/ myresults目录在MATLAB代码并重新编译应用程序。

  7. 从得到的数据存储读取结果。

    myAppResult = readall(结果)
  8. 使用世纪挑战集团命令- m国旗来创建一个独立的应用程序。

    世纪挑战集团- mdepMapRedStandAlone.m

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

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

    美元/ run_depMapRedStandAlone。sh /usr/local/MATLAB/MATLAB_Runtime /R2023a

    /usr/local/MATLAB/MATLAB_Runtime /R2023a是一个参数指示的位置MATLAB运行时

    执行上面的命令之前,验证HADOOP_PREFIX环境变量中设置终端通过键入:

    美元echo $ HADOOP_PREFIX
    如果回声是空的,看到的先决条件以上部分,看看你可以设置HADOOP_PREFIX环境变量。

    如果您的应用程序将无法执行HADOOP_PREFIX环境变量没有设置。

  10. 您将看到以下输出:

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

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

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

depMapRedStandAlone.m

另请参阅

||||

相关的话题