主要内容

在运行独立的示例马铃薯MapReduce应用程序

金宝app支持的平台:Linux.®只要。

此示例显示了如何创建独立MATLAB®MapReduce应用程序使用世纪挑战集团命令并将其与Hadoop运行®簇。

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

数据集: airlinesmall.csv
描述:

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

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

先决条件

  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/local/MATLAB/MATLAB_Runtime /v911作为地点MATLAB运行时文件夹。

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

    笔记

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

  4. 复制地图函数maxArrivalDelayMapper.m/usr/local/MATLAB/R2021b/工具箱/ matlab / demos文件夹到工作文件夹。

    maxArrivalDelayMapper.m

    有关更多信息,请参阅写一个地图函数

  5. 复制缩小功能MaxArrivalDelayreducer.m.matlabroot/工具箱/ matlab / demos文件夹到工作文件夹。

    MaxArrivalDelayreducer.m.

    有关更多信息,请参阅写一个缩小功能

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

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

程序

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

    >> GetEnv(“HADOOP_PREFIX”

    如果是空的,检讨先决条件上面的一部分,了解如何设置HADOOP_PREFIX环境变量。

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

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

    ds =数据存储('HDFS://user/username/datasets/airlinesmall.csv'......'尾声'“NA”......'selectedvariamblenames', {“UniqueCarrier”“ArrDelay”});

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

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

    config = matlab.mapreduce.deployhadoopmaprecucer;

    matlab.mapreduce.deployHadoopMaprecucer.可用于根据将部署的Hadoop环境配置独立应用程序。

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

    config = matlab.mapreduce.deployhadoopmaprecucer('mcroot','/ opt / matlab / matlab_runtime /v911');
    在这个场景中,我们假设MATLAB运行时安装在非默认位置,如/ opt / matlab / matlab_runtime在工人节点上。

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

    笔记

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

  5. 使用该执行执行环境Mapreducer.

    = mapreduce先生(配置);
  6. 应用mapreduce功能。

    结果= mapreduce(......ds,......@maxArrivalDelayMapper @maxArrivalDelayReducer,......先生,......'OutputType''二进制'......'导出目录'hdfs: / / / user / <用户名> /结果/ myresults ');

    笔记

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

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

    myAggesult = Readall(结果)
  8. 使用世纪挑战集团司法- m标记以创建独立应用程序。

    世纪挑战集团- mdepmapredstastalone.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. 您将看到以下输出:

    MyAggesult =键值_________________ ______'maxArrivaldelay'[1014]

其他例子地图降低功能可用工具箱/ matlab / demos文件夹。您可以使用其他示例来原型类似于Hadoop运行的独立应用程序。有关更多信息,请参阅用MapReduce构建有效的算法

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

depmapredstastalone.m.

也可以看看

||||

相关的话题