部署高数组来火花启用Hadoop集群
金宝app支持平台:Linux®只有。
这个例子显示了如何部署一个MATLAB®应用程序包含高阵列火花™Hadoop启用®集群。
目标:计算的平均延迟和最大的到来推迟到来航空公司从给定的数据集。
数据集: | airlinesmall.csv |
描述: | 从1987 - 2008年航空出发和到达信息。 |
地点: | /usr/local/MATLAB/R2023a/工具箱/ matlab /演示 |
请注意
你可以遵循相同的指令向CLOUDERA部署高数组火花应用程序®鼎晖。看一个例子MATLAB的答案™,点击在这里。
使用CLOUDERA鼎晖加密区,添加JAR文件commons-codec-1.9.jar
静态类路径MATLAB运行时。文件位置:HADOOP_PREFIX / lib / commons-codec-1.9.jar美元
,美元HADOOP_PREFIX Hadoop的位置安装。
请注意
如果您使用的是火花版本1.6或更高版本,您将需要增加Java®在MATLAB堆大小至少512 mb的磁盘空间。信息如何在MATLAB中增加Java堆大小,明白了Java堆内存的偏好。
先决条件
开始这个例子通过创建一个新的工作文件夹可见的MATLAB搜索路径。
安装MATLAB运行时在一个文件夹访问的每一个工人在Hadoop集群节点。这个示例使用
/usr/local/MATLAB/MATLAB_Runtime /
的位置MATLAB运行时文件夹中。<版本>
如果你没有MATLAB运行时,你可以从网站下载:
//www.tatmou.com/下载188bet金宝搏products/compiler/mcr
。请注意
替换所有引用MATLAB运行时版本
在这个例子中MATLAB运行时版本号对应MATLAB版本。和有关信息。MATLAB运行时版本号对应MATLAB版本中,看到这个列表。<版本>
复制文件
airlinesmall.csv
到Hadoop分布式文件系统(HDFS™)文件夹中/ user / <用户名> /数据集
。在这里<用户名>
是指您的用户名在HDFS。美元hadoop。/ fs -copyFromLocal airlinesmall。csv hdfs: / /主持人:54310 / user /<用户名>/数据集
过程
设置环境变量,
HADOOP_PREFIX
指向您的Hadoop安装文件夹。这些属性是必要的提交工作您的Hadoop集群。setenv (“HADOOP_PREFIX”,“/ usr / lib / hadoop”)
的
HADOOP_PREFIX
当使用MATLAB环境变量必须设置数据存储
功能指HDFS数据。设置环境变量与火花无关。看到火花和Hadoop之间的关系为更多的信息。如果您计划使用一个数据集在你的本地机器上而不是在HDFS,那么您可以跳过这一步。
请注意
这个示例使用
/usr/lib/hadoop
Hadoop的安装目录。您的Hadoop安装目录可能不同。指定引发属性。
使用一个
containers.Map
对象指定火花属性。sparkProperties = containers.Map (…{“spark.executor.cores”,…“spark.executor.memory”,…“spark.yarn.executor.memoryOverhead”,…“spark.dynamicAllocation.enabled”,…“spark.shuffle.service.enabled”,…“spark.eventLog.enabled”,…“spark.eventLog.dir”},…{' 1 ',…2 g的,…“1024”,…“真正的”,…“真正的”,…“真正的”,…hdfs: / /主持人:54310 / user / <用户名> /日志”});
在火花属性的更多信息,扩大
道具
的价值“SparkProperties”
名称-值对的输入参数部分的SparkConf
类。的SparkConf
类是火花MATLAB API的一部分,它提供了另一种方式将MATLAB应用程序部署到火花。有关更多信息,请参见部署应用程序使用MATLAB API的火花。MATLAB应用程序配置包含高与火花参数数组。
使用的类
matlab.mapreduce.DeploySparkMapReducer
MATLAB应用程序配置包含高与火花参数键值对数组。参看= matlab.mapreduce.DeploySparkMapReducer (…“浏览器名称”,“myTallApp”,…“大师”,“yarn-client”,…“SparkProperties”,sparkProperties);
有关更多信息,请参见
matlab.mapreduce.DeploySparkMapReducer
。定义引发执行环境。
使用
mapreduce
函数定义引发执行环境。mapreduce(配置)
有关更多信息,请参见
mapreduce
。包括MATLAB应用程序代码包含高数组。
使用MATLAB函数
数据存储
创建一个数据存储
对象指向该文件airlinesmall.csv
在HDFS。通过数据存储
对象作为输入参数高
函数。这将创建一个高的数组。对高可以执行操作数组来计算平均延迟和最大的到来推迟到来。%为一组表格创建一个|数据存储|代表航空公司数据文本文件。%选择感兴趣的变量,指定一个分类的数据类型% |起源|和| |变量不在座位上。% ds =数据存储(airlinesmall.csv) %如果在本地机器上使用一个数据集ds =数据存储(hdfs: / / / <用户名> /数据/ airlinesmall.csv ');ds。TreatAsMissing =“NA”;ds。SelectedVariableNames = {“年”,“月”,“ArrDelay”,“DepDelay”,“起源”,“桌子”};ds.SelectedFormats (6) = {“% C”,“% C”};%创建高数组%高数组就像正常的MATLAB数组,除了他们可以有%的行数。当高| |数组支持| |数据存储时,底层的类%的高是基于数据存储的类型数组。tt =高(ds);%删除丢失数据行或NaN值idx =任何(ismissing (tt), 2);tt (idx:) = [];%计算平均延迟meanArrivalDelay =意味着(tt.DepDelay,“omitnan”);biggestDelays = topkrows (tt 10“ArrDelay”);%收集结果% | |聚集力量评估所有排队操作和功能%将输出结果返回到内存中。[meanArrivalDelay, biggestDelays] =收集(meanArrivalDelay biggestDelays)%删除mapreduce对象删除(设计);
创建一个火花应用程序。
使用
世纪挑战集团
命令-vCW
选项来创建一个应用程序使用火花3. x。> > mcc -vCW“火花:myTallApp 3”deployTallArrayToSpark.m
创建以下文件。
文件 描述 run_myTallApp.sh
Shell脚本运行应用程序。脚本调用 spark-submit
启动集群上的应用程序。myTallApp.jar
应用程序JAR。应用程序JAR包含封装MATLAB代码和其他依赖项。 固定
自述文件包含细节如何运行该应用程序。 requiredMCR下载188bet金宝搏Products.txt
mccExcludedFiles.log
有关更多信息,请参见
世纪挑战集团
。运行应用程序从一个Linux shell使用以下命令:
美元。/ run_myTallApp。sh /usr/local/MATLAB/MATLAB_Runtime / v# #
/usr/local/MATLAB/MATLAB_Runtime /
是一个参数指示的位置MATLAB运行时。<版本>
您将看到以下输出:
meanArrivalDelay = 7.1201 biggestDelays ArrDelay起源Dest = 10 x5表年月_____ ________ ________上1995 11 1014 HNL宽松2007 4 914年肯尼迪DTW 2001 4 887 MCO DTW 2008 7 845而言不啻奥德1988 3 772奥德LEX 2008 4 710英文文宣写作研习营RDU 1998 10 679 MCI DFW 2006 6 603 ABQ PHX 2008 6 586年坑LGA 2007 4 568优化SLC
可选地,如果你想分析或查看您的应用程序所产生的结果在MATLAB中,你需要写在HDFS文件使用的结果写
数组函数高。然后您可以读取文件使用数据存储
函数。
结果写在HDFS文件,添加以下代码行MATLAB应用程序之前删除(配置)
声明然后打包的应用程序:
写(hdfs: / / / user / <用户名> /结果”高(biggestDelays));
取代<用户名>
你的用户名。
你只能将一个变量保存到一个文件中使用写
数组函数高。因此,您需要写多个文件,如果你想保存多个变量。
在MATLAB查看结果执行应用程序对火花使集群后,使用数据存储
函数如下:
> > ds =数据存储(hdfs: / / / user / <用户名> /结果”)> > readall (ds)
您可能需要设置环境变量HADOOP_PREFIX
使用函数setenv
如果您无法查看结果使用数据存储
函数。
请注意
如果高阵列的应用程序被部署是一个MATLAB函数而不是一个MATLAB脚本,使用以下执行语法:
美元。/ run_ < applicationName >。sh \ < MATLAB_Runtime_Location > \[火花参数]\[应用程序参数)
美元。/ run_myTallApp。sh \ /usr/local/MATLAB/MATLAB_Runtime / v92 \ yarn-client \ hdfs: / /主机:54310 / user / <用户名> /数据/ airlinesmall。csv \ hdfs: / /主机:54310 / user / <用户名> /结果
代码: