独立的运行MATLABMapReduce应用程序
金宝app支持平台:Linux®只有。
这个例子向您展示了如何创建一个独立的MATLAB®MapReduce应用世纪挑战集团
命令并在Hadoop上运行它®集群。
目标:从给定的数据集中计算航空公司的最大到达延迟。
数据集: | airlinesmall.csv |
描述: | 1987-2008年离港及抵港航班资料。 |
地点: | /usr/local/MATLAB/R2022b/工具箱/ matlab /演示 |
先决条件
通过创建一个对MATLAB搜索路径可见的新工作文件夹开始本示例。
在启动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”)
安装MATLAB运行时在Hadoop集群中每个工作节点都可以访问的文件夹中。这个例子使用了
/usr/local/MATLAB/MATLAB_Runtime /R2022b
作为位置的MATLAB运行时文件夹中。如果你没有MATLAB运行时,你可从以下网址下载:
//www.tatmou.com/下载188bet金宝搏products/compiler/mcr
.请注意
有关MATLAB运行时对应的MATLAB版本号,请看这个列表.
复制映射函数
maxArrivalDelayMapper.m
从/usr/local/MATLAB/R2022b/工具箱/ matlab /演示
文件夹到工作文件夹。有关更多信息,请参见写地图.
复制reduce函数
maxArrivalDelayReducer.m
从
文件夹到工作文件夹。matlabroot
/工具箱/ matlab /演示有关更多信息,请参见写一个Reduce函数.
创建目录
/ user /
在HDFS™上复制文件<用户名>
/数据集airlinesmall.csv
到那个目录。在这里
指的是您在HDFS中的用户名。<用户名>
$./hadoop fs -copyFromLocal airlinsmalll .csv hdfs://host:54310/user/
<用户名>
/数据集
过程
启动MATLAB并验证
HADOOP_PREFIX
已设置环境变量。在命令提示符下,输入:> >采用“HADOOP_PREFIX”)
如果
答
是空的,检讨了吗先决条件部分中查看如何设置HADOOP_PREFIX
环境变量。创建一个新的MATLAB脚本
depMapRedStandAlone.m
.您将把下面步骤中列出的代码添加到这个脚本文件中。创建一个
数据存储
指向HDFS中的航空公司数据。数据存储(hdfs: / / /用户/用户名/数据/ airlinesmall.csv”,...“TreatAsMissing”,“NA”,...“SelectedVariableNames”,{“UniqueCarrier”,“ArrDelay”});
有关更多信息,请参见使用远程数据.
使用默认设置配置在Hadoop上部署的应用程序。
config = matlab.mapreduce.DeployHadoopMapReducer;
类
matlab.mapreduce.DeployHadoopMapReducer
可以用于配置基于将要部署的Hadoop环境的独立应用程序。类的位置MATLAB运行时在集群中的每个工作节点上,包含一行类似于这样的代码:
config = MATLAB .mapreduce. deployhadoopmapreducer ('MCRRoot','/opt/MATLAB/MATLAB_Runtime/ . config ')R2022b”);
/ opt / MATLAB / MATLAB_Runtime
在工作节点上。有关指定其他特定于集群的属性的信息,请参见
matlab.mapreduce.DeployHadoopMapReducer
.请注意
指定一个MATLAB运行时Location作为类的一部分
matlab.mapreduce.DeployHadoopMapReducer
将覆盖任何MATLAB运行时在执行独立应用程序期间指定的位置。属性定义执行环境
mapreduce
.Mr = mapreducer(config);
应用
mapreduce
函数。结果= mapreduce(...ds,...@maxArrivalDelayMapper @maxArrivalDelayReducer,...先生,...“OutputType”,“二元”,...“OutputFolder”,hdfs: / / / user / <用户名> /结果/ myresults ');
请注意
HDFS目录,例如
…/ myresults
只能被写入一次。如果计划在Hadoop集群上多次运行独立应用程序,请确保删除…/ myresults
在每次执行之前在HDFS上的目录。的名称…/ myresults
目录中的MATLAB代码并重新编译应用程序。从结果数据存储中读取结果。
myAppResult = readall(结果)
使用
世纪挑战集团
命令使用- m
标志以创建独立应用程序。世纪挑战集团- mdepMapRedStandAlone.m
的
- m
Flag创建一个可以从命令行运行的标准可执行文件。然而,世纪挑战集团
命令不能将结果打包到安装程序中。使用以下命令从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
未设置环境变量。界面显示如下:
myAppResult =键值 _________________ ______ ' MaxArrivalDelay”[1014]
其他例子地图
而且减少
有关功能可在工具箱/ matlab /演示
文件夹中。您可以使用其他示例来创建在Hadoop上运行的类似独立应用程序的原型。有关更多信息,请参见用MapReduce构建有效的算法.
独立应用程序的完整代码depMapRedStandAlone
可在这里找到:
另请参阅
数据存储
|TabularTextDatastore
|KeyValueDatastore
|matlab.mapreduce.DeployHadoopMapReducer
|世纪挑战集团