金宝app支持的平台:Linux.®只要。
此示例显示了如何创建独立MATLAB®MapReduce应用程序使用世纪挑战集团
命令并将其与Hadoop运行®簇。
目标:从给定的数据集计算航空公司的最大到达延迟。
数据集: | airlinesmall.csv |
描述: | 1987-2008年航班离港及抵港信息。 |
地点: | /usr/local/MATLAB/R2021b/工具箱/ matlab / demos |
通过创建一个对MATLAB搜索路径可见的新工作文件夹来开始这个示例。
在启动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')
安装MATLAB运行时在Hadoop集群中的每个工人节点可访问的文件夹中。这个例子用途/usr/local/MATLAB/MATLAB_Runtime /v911
作为地点MATLAB运行时文件夹。
如果你没有MATLAB运行时,您可以从网站下载://www.tatmou.com/下载188bet金宝搏products/compiler/mcr.
。
笔记
和有关信息。MATLAB运行时版本号对应的MATLAB版本,见此列表。
复制地图函数maxArrivalDelayMapper.m
从/usr/local/MATLAB/R2021b/工具箱/ matlab / demos
文件夹到工作文件夹。
有关更多信息,请参阅写一个地图函数。
复制缩小功能MaxArrivalDelayreducer.m.
从
文件夹到工作文件夹。matlabroot
/工具箱/ matlab / demos
有关更多信息,请参阅写一个缩小功能。
创建目录/用户/
在HDFS™上复制文件<用户名>
/数据集airlinesmall.csv
该目录。在这里
指您在HDFS中的用户名。<用户名>
$./hadoop fs -copyFromLocal airlinessmall .csv hdfs://host:54310/user/<用户名>
/数据集
启动MATLAB,验证HADOOP_PREFIX
已设置环境变量。在命令提示符处,输入:
>> GetEnv(“HADOOP_PREFIX”)
如果答
是空的,检讨先决条件上面的一部分,了解如何设置HADOOP_PREFIX
环境变量。
用这个名字创建一个新的MATLAB脚本depmapredstastalone.m.
。您将添加下面列出的步骤中列出的代码在此脚本文件中。
创建一个数据存储
这指向Hadoop分布式文件系统(HDFS)中的航空公司数据。
ds =数据存储('HDFS://user/username/datasets/airlinesmall.csv'那......'尾声'那“NA”那......'selectedvariamblenames', {“UniqueCarrier”那“ArrDelay”});
有关更多信息,请参阅使用远程数据。
使用默认设置配置应用程序,以便针对Hadoop进行部署。
config = matlab.mapreduce.deployhadoopmaprecucer;
类matlab.mapreduce.deployHadoopMaprecucer.
可用于根据将部署的Hadoop环境配置独立应用程序。
例如,如果您想指定MATLAB运行时在集群上的每个工作节点上,包含一行类似于这样的代码:
config = matlab.mapreduce.deployhadoopmaprecucer('mcroot','/ opt / matlab / matlab_runtime /v911');
/ opt / matlab / matlab_runtime
在工人节点上。有关指定其他群集特定属性的信息,请参阅matlab.mapreduce.deployHadoopMaprecucer.
。
笔记
指定A.MATLAB运行时位置是课程的一部分matlab.mapreduce.deployHadoopMaprecucer.
将覆盖任何东西MATLAB运行时在执行独立应用程序期间指定的位置。
使用该执行执行环境Mapreducer.
。
= mapreduce先生(配置);
应用mapreduce
功能。
结果= mapreduce(......ds,......@maxArrivalDelayMapper @maxArrivalDelayReducer,......先生,......'OutputType'那'二进制'那......'导出目录'那hdfs: / / / user / <用户名> /结果/ myresults ');
笔记
一个HDFS目录,如...... / myResults.
可以只写入一次。如果您计划在Hadoop集群上多次运行独立应用程序,请确保删除...... / myResults.
目录在每次执行之前。另一种选择是更改名称...... / myResults.
目录中的MATLAB代码,并重新编译应用程序。
从生成的数据存储读取结果。
myAggesult = Readall(结果)
使用世纪挑战集团
司法- m
标记以创建独立应用程序。
世纪挑战集团- mdepmapredstastalone.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
未设置环境变量。
您将看到以下输出:
MyAggesult =键值_________________ ______'maxArrivaldelay'[1014]
其他例子地图
和降低
功能可用工具箱/ matlab / demos
文件夹。您可以使用其他示例来原型类似于Hadoop运行的独立应用程序。有关更多信息,请参阅用MapReduce构建有效的算法。
独立应用程序的完整代码depmapredallyalone.
可在此找到:
数据存储
|TabularTextDatastore
|KeyValueDatastore
|matlab.mapreduce.deployHadoopMaprecucer.
|世纪挑战集团