实施例上运行的独立MATLABMapReduce的应用

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

这个例子说明了如何创建一个独立的MATLAB®使用的MapReduce应用程序MCC命令并运行它针对Hadoop的®簇。

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

数据集: airlinesmall.csv
描述:

航空公司出发和到达1987-2008的信息。

位置: 在/ usr /本地/ MATLAB /R2020a/工具箱/ MATLAB /演示

先决条件

  1. 通过创建一个新的工作文件夹是MATLAB的搜索路径中开始这个例子。

  2. 开始MATLAB,在终端前,设置环境变量HADOOP_PREFIX指向Hadoop的安装文件夹。例如:

    贝壳 命令
    CSH / tcsh的

    %SETENV HADOOP_PREFIX / usr / lib中/ hadoop的

    庆典

    $出口HADOOP_PREFIX = / usr / lib目录/ Hadoop的

    注意

    本例使用/ usr / lib中/ hadoop的作为目录下的Hadoop安装。你的Hadoop的安装目录可能不同。

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

    SETENV('HADOOP_PREFIX''/ usr / lib中/ hadoop的'

  3. 安装MATLAB运行一个文件夹中是Hadoop集群中的每一个工作节点进行访问。本例使用在/ usr /本地/ MATLAB / MATLAB_Runtime /V98作为对位置MATLAB运行夹。

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

    注意

    有关信息MATLAB运行相应的MATLAB版本的版本号,请参阅本名单

  4. 复制地图功能maxArrivalDelayMapper.m在/ usr /本地/ MATLAB /R2020a/工具箱/ MATLAB /演示文件夹复制到工作目录。

    maxArrivalDelayMapper.m

    欲了解更多信息,请参阅写地图功能(MATLAB)。

  5. 复制功能降低maxArrivalDelayReducer.mmatlabroot/工具箱/ MATLAB /演示文件夹复制到工作目录。

    maxArrivalDelayReducer.m

    欲了解更多信息,请参阅写Reduce函数(MATLAB)。

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

    $./hadoop FS -copyFromLocal airlinesmall.csv HDFS://主机:54310 /用户/<用户名>/数据集

程序

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

    >> GETENV('HADOOP_PREFIX'

    如果是空的,审查先决条件上面的部分就看你如何设置HADOOP_PREFIX环境变量。

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

  3. 创建一个数据存储这点在Hadoop分布式文件系统(HDFS)航空公司的数据。

    DS =数据存储区('HDFS:///user/username/datasets/airlinesmall.csv'...'TreatAsMissing''NA'...'SelectedVariableNames'{'UniqueCarrier''ArrDelay'});

    欲了解更多信息,请参阅与远程数据,(MATLAB)。

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

    配置= matlab.mapreduce.DeployHadoopMapReducer;

    班上matlab.mapreduce.DeployHadoopMapReducer可用于配置基于在那里将要部署Hadoop的环境中的独立应用程序。

    例如,如果你想指定的位置MATLAB运行在每个集群上的工人的节点,包括线的类似下面的代码:

    配置= matlab.mapreduce.DeployHadoopMapReducer( 'MCRRoot','/选择/ MATLAB / MATLAB_Runtime /V98“);
    在这种情况下,我们假设MATLAB运行被安装在一个非缺省的位置,如/选择/ MATLAB / MATLAB_Runtime在工作节点。

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

    注意

    指定MATLAB运行位置作为类的一部分matlab.mapreduce.DeployHadoopMapReducer将覆盖任何MATLAB运行单独的应用程序的执行过程中的位置指定。

  5. 使用定义的执行环境mapreducer

    MR = mapreducer(配置);
  6. 应用MapReduce的功能。

    导致=映射精简(...DS,...@ maxArrivalDelayMapper,@ maxArrivalDelayReducer,...先生,...“输出类型”“二进制”...'导出目录''HDFS:///用户/ <用户名> /结果/ myresults');

    注意

    一个HDFS目录,如... / myresults可写入一次。如果你打算上运行的独立应用程序多次对Hadoop集群,请确保您删除... / myresults上HDFS目录之前每个执行。另一种选择是改变的名称... / myresults目录中的MATLAB代码并重新编译应用程序。

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

    myAppResult = readall(结果)
  8. 使用MCC用命令-m标志以创建一个独立的应用程序。

    MCC-mdepMapRedStandAlone.m

    -m标志创建可以从命令行运行一个标准的可执行文件。但是,那MCC命令不能在封装的安装结果。

  9. 使用以下命令运行在Linux外壳的独立应用程序:

    $./run_depMapRedStandAlone.sh在/ usr /本地/ MATLAB / MATLAB_Runtime /V98

    在/ usr /本地/ MATLAB / MATLAB_Runtime /V98是指示的位置的一个参数MATLAB运行

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

    $回声$ HADOOP_PREFIX
    如果回声出现空,看先决条件上面的部分就看你如何设置HADOOP_PREFIX环境变量。

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

  10. 你会看到下面的输出:

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

的其他例子地图减少功能可在工具箱/ MATLAB /演示夹。您可以使用其他的例子为原型,针对Hadoop的运行类似的独立应用程序。欲了解更多信息,请参阅建立有效的算法与MapReduce的(MATLAB)。

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

depMapRedStandAlone.m

也可以看看

||||

相关话题