这个例子展示了如何修改MATLAB®创建一个在Spark上运行的高表的示例®启用Hadoop®集群。您可以使用这个高表创建高数组并计算统计属性。您可以在本地开发代码,然后向上扩展,以利用Parallel Computing Toolbox™和MATLAB并行服务器™而不必重写你的算法。另请参阅使用高阵列和数据存储的大数据工作流和配置Hadoop集群(MATLAB并行服务器)
首先,必须根据特定的启用Spark的Hadoop集群配置设置环境变量和集群属性。请向系统管理员了解向集群提交作业所需的这些属性和其他属性的值。
setenv (“HADOOP_HOME”,/道路/ / hadoop /安装的setenv ()“SPARK_HOME”,/道路/ /火花/安装的);集群= parallel.cluster.Hadoop;%可选,如果你想控制工人的确切数量:cluster.SparkProperties (“spark.executor.instances”) =“16”;mapreduce(集群);
请注意
在设置步骤中,使用mapreduce
设置集群执行环境。在下一步中,您将创建一个高数组。如果在创建tall数组之后修改或删除集群执行环境,则tall数组无效,必须重新创建它。
请注意
如果希望以串行方式开发而不使用本地工作者,请输入以下命令。
mapreduce (0);
设置好环境变量和集群属性后,就可以运行MATLAB了高表的例子在Spark上启用Hadoop集群,而不是在本地机器上。创建一个数据存储并将其转换为一个高表。MATLAB自动启动一个火花作业运行后续计算在高表。
ds =数据存储(“airlinesmall.csv”);varnames = {“ArrDelay”,“DepDelay”};ds。SelectedVariableNames = varnames;ds。TreatAsMissing =“NA”;
制作一张高桌子tt
从数据存储中。
tt =高(ds)
在Hadoop集群上启动Spark作业。这可能需要几分钟…完成。tt = M×2 tall table ArrDelay DepDelay ________ ________ 8 12 8 1 21 20 13 12 4 -1 59 63 3 -2 11 -1::::
显示指示行数,米
目前还不清楚。米
是占位符,直到计算完成。
提取到达延迟ArrDelay
从高高的桌子上。该操作创建了一个新的tall数组变量,以便在后续计算中使用。
一个= tt.ArrDelay;
可以在tall数组上指定一系列操作,这些操作在调用之前不会执行收集
。这样做可以批处理可能需要很长时间的命令。例如,计算到达延迟的均值和标准差。使用这些值来构造在均值的一个标准差以内的延迟的上限和下限。
m =意味着(,“omitnan”);s =性病(,“omitnan”);one_sigma_bounds = [m-s m m+s];
使用收集
计算one_sigma_bounds
,并记住答案。
sig1 =收集(one_sigma_bounds)
- Pass 1 of 1: Completed in 0.95 sec
可以指定多个输入和输出收集
如果你想一次评估几个东西。这样做比打电话快收集
分别在每个高数组上。例如,计算最小和最大到达延迟。
[max_delay, min_delay] = gather(max(a),min(a))
max_delay = 1014 min_delay = -64
请注意
如果MATLAB开始使用集群workers,那么第一次完成这些示例需要更多的时间。
在启用Spark的Hadoop集群上使用tall array时,Hadoop集群的计算资源将保留到mapreducer执行环境的生命周期。为了清除这些资源,必须删除mapreducer:
删除(gcmr);
mapreduce (0);
数据存储
|收集
|mapreduce
|parallel.cluster.Hadoop
|表格
|高