使用高数组火花启用Hadoop集群

创建和使用高表

这个例子展示了如何修改一个MATLAB®创建在Spark上运行的高表的示例®启用Hadoop.®集群。您可以使用这个高表创建高数组并计算统计属性。您可以在本地开发代码,然后进行扩展,以利用Parallel Computing Toolbox™和提供的功能MATLAB并行服务器™不需要重写算法。另请参阅使用高数组和数据存储的大数据工作流配置Hadoop集群(MATLAB并行服务器)

首先,必须根据特定的启用Spark的Hadoop集群配置设置环境变量和集群属性。请与系统管理员联系,了解向集群提交作业所需的这些属性和其他属性的值。

setenv (“HADOOP_HOME”/道路/ / hadoop /安装的setenv ()“SPARK_HOME”/道路/ /火花/安装的);cluster = parallel.cluster.hadoop;%可选,如果你想控制工人的确切数量:集群。火花Properties('spark.executor.instances') =“16”;mapreduce(集群);

请注意

在设置步骤中,使用mapreduce设置群集执行环境。在下一步中,您可以创建一个高大的数组。如果在创建高阵列后修改或删除群集执行环境,则高大的数组无效,您必须重新创建它。

请注意

如果您想要串行开发并且不使用本地工人,请输入以下命令。

mapreduce (0);

设置环境变量和集群属性之后,就可以运行MATLAB了高表的例子(MATLAB)在启用Spark的Hadoop集群上,而不是在您的本地机器上。创建一个数据存储并将其转换为一个高表。MATLAB自动启动一个Spark作业在高表上运行后续的计算。

ds =数据存储(“airlinesmall.csv”);varnames = {“ArrDelay”“DepDelay”};ds。SelectedVariableNames = varnames;ds。TreatAsMissing =“NA”

创造一个高大的桌子tt从数据存储中。

tt =高(ds)
在Hadoop集群上启动Spark Job。这可能需要几分钟……tt = M×2 tall table ArrDelay DepDelay ________ ________ 8 12 8 1 21 20 13 12 4 -1 59 63 3 -2 11 -1::::

显示显示了行数,,目前尚不清楚。是一个占位符,直到计算完成。

提取到达延迟ArrDelay从高大的桌子。此操作创建一个新的高阵列变量以在后续计算中使用。

一个= tt.ArrDelay;

您可以在tall数组上指定一系列操作,这些操作直到调用时才会执行收集.这样做允许您批量可能需要很长时间的命令。例如,计算到达延迟的平均值和标准偏差。使用这些值来构造延迟的上阈值和较低阈值,这在1标准偏差的平均值中。

m =均值(a,“omitnan”);s =性病(,“omitnan”);one_sigma_bounds = [m-s m m + s];

使用收集计算one_sigma_bounds,把答案记在记忆里。

sig1 =收集(one_sigma_bounds)
使用Spark Cluster评估高表达: -  PASS 1为1:在0.95秒的评估中完成,完成1.3秒SIG1 = -23.4572 7.1201 37.6975

您可以指定多个输入和输出收集如果你想同时评估几件事。这样做比调用更快收集分别放在每个高数组上。例如,计算最小和最大到达延迟。

[max_delay, min_delay] = gather(max(a),min(a))
max_delay = 1014 min_delay = -64

请注意

如果在集群工作器上启动MATLAB,那么第一次完成这些示例需要更多的时间。

在启用Spark的Hadoop集群上使用高数组时,Hadoop集群的计算资源将被保留到mapreducer执行环境的生命周期。要清除这些资源,必须先删除mapreducer:

删除(gcmr);
或者,您可以更改为不同的执行环境,例如:
mapreduce (0);

另请参阅

|||||

相关的例子

更多关于