万博1manbetx支持的平台:Linux的®只要。
这个例子说明了如何创建一个独立的MATLAB®使用的MapReduce应用程序MCC
命令并运行它针对Hadoop的®簇。
目标:计算从给定的数据集航空公司的最大到达延迟。
数据集: | airlinesmall.csv |
描述: | 航空公司出发和到达1987-2008的信息。 |
位置: | 在/ usr /本地/ MATLAB /R2020a/工具箱/ MATLAB /演示 |
通过创建一个新的工作文件夹是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 /本地/ MATLAB / MATLAB_Runtime /V98
作为对位置MATLAB运行夹。
如果你不具备MATLAB运行,你可以从网站下载://www.tianjin-qmedu.com/s manbetx 845products/compiler/mcr
。
有关信息MATLAB运行相应的MATLAB版本的版本号,请参阅本名单。
复制地图功能maxArrivalDelayMapper.m
从在/ usr /本地/ MATLAB /R2020a/工具箱/ MATLAB /演示
文件夹复制到工作目录。
欲了解更多信息,请参阅写地图功能(MATLAB)。
复制功能降低maxArrivalDelayReducer.m
从
文件夹复制到工作目录。matlabroot
/工具箱/ MATLAB /演示
欲了解更多信息,请参阅写Reduce函数(MATLAB)。
创建目录/用户/
在HDFS™和复制文件<用户名>
/数据集airlinesmall.csv
到该目录。这里
是指在HDFS您的用户名。<用户名>
$./hadoop FS -copyFromLocal airlinesmall.csv HDFS://主机:54310 /用户/<用户名>
/数据集
启动MATLAB和验证HADOOP_PREFIX
环境变量已设置。在命令提示,输入:
>> GETENV('HADOOP_PREFIX')
如果答
是空的,审查先决条件上面的部分就看你如何设置HADOOP_PREFIX
环境变量。
与名称创建一个新的MATLAB脚本depMapRedStandAlone.m
。您将添加在下面列出的这个脚本文件的步骤列出的代码。
创建一个数据存储
这点在Hadoop分布式文件系统(HDFS)航空公司的数据。
DS =数据存储区('HDFS:///user/username/datasets/airlinesmall.csv',...'TreatAsMissing','NA',...'SelectedVariableNames'{'UniqueCarrier','ArrDelay'});
欲了解更多信息,请参阅与远程数据,(MATLAB)。
配置针对Hadoop的部署使用默认设置的应用程序。
配置= matlab.mapreduce.DeployHadoopMapReducer;
班上matlab.mapreduce.DeployHadoopMapReducer
可用于配置基于在那里将要部署Hadoop的环境中的独立应用程序。
例如,如果你想指定的位置MATLAB运行在每个集群上的工人的节点,包括线的类似下面的代码:
配置= matlab.mapreduce.DeployHadoopMapReducer( 'MCRRoot','/选择/ MATLAB / MATLAB_Runtime /V98“);
/选择/ MATLAB / MATLAB_Runtime
在工作节点。有关指定其他集群的特定属性信息,请参见matlab.mapreduce.DeployHadoopMapReducer
。
指定MATLAB运行位置作为类的一部分matlab.mapreduce.DeployHadoopMapReducer
将覆盖任何MATLAB运行单独的应用程序的执行过程中的位置指定。
使用定义的执行环境mapreducer
。
MR = mapreducer(配置);
应用MapReduce的
功能。
导致=映射精简(...DS,...@ maxArrivalDelayMapper,@ maxArrivalDelayReducer,...先生,...“输出类型”,“二进制”,...'导出目录','HDFS:///用户/ <用户名> /结果/ myresults');
一个HDFS目录,如... / myresults
可写入一次。如果你打算上运行的独立应用程序多次对Hadoop集群,请确保您删除... / myresults
上HDFS目录之前每个执行。另一种选择是改变的名称... / myresults
目录中的MATLAB代码并重新编译应用程序。
阅读从得到的数据存储的结果。
myAppResult = readall(结果)
使用MCC
用命令-m
标志以创建一个独立的应用程序。
MCC-mdepMapRedStandAlone.m
该-m
标志创建可以从命令行运行一个标准的可执行文件。但是,那MCC
命令不能在封装的安装结果。
使用以下命令运行在Linux外壳的独立应用程序:
$./run_depMapRedStandAlone.sh在/ usr /本地/ MATLAB / MATLAB_Runtime /V98
在/ usr /本地/ MATLAB / MATLAB_Runtime /V98
是指示的位置的一个参数MATLAB运行。
之前执行上述命令,验证HADOOP_PREFIX
环境变量在终端通过键入设置:
$回声$ HADOOP_PREFIX
回声
出现空,看先决条件上面的部分就看你如何设置HADOOP_PREFIX
环境变量。你的应用程序将无法执行,如果HADOOP_PREFIX
环境变量没有设置。
你会看到下面的输出:
myAppResult =键值_________________ ______ 'MaxArrivalDelay'[1014]
的其他例子地图
和减少
功能可在工具箱/ MATLAB /演示
夹。您可以使用其他的例子为原型,针对Hadoop的运行类似的独立应用程序。欲了解更多信息,请参阅建立有效的算法与MapReduce的(MATLAB)。
对于独立的应用程序的完整代码depMapRedStandAlone
可以在这里找到:
KeyValueDatastore
|TabularTextDatastore
|数据存储
|matlab.mapreduce.DeployHadoopMapReducer
|MCC