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