最新のリリースでは,このページがまだ翻訳されていません。このページの最新版は英語でご覧になれます。
この例では高表を作成するMATLAB®の例を変更して,火花®対応Hadoop®クラスターで実行する方法を説明します。この高テーブルを使用して高配列を作成し,統計プロパティを計算できます。コードをローカルで作成してからスケールアップすることで,アルゴリズムを書き換えることなく并行计算工具箱™およびMATLAB并行服务器™が提供する機能を利用できます。高配列およびデータストアを使用するビッグデータのワークフローおよびHadoopクラスターの構成(MATLAB并行服务器)も参照してください。
まず,環境変数とクラスタープロパティを,特定の火花対応Hadoopクラスターの構成に応じて適切に設定しなければなりません。これらの値とクラスターにジョブを投入するために必要なその他のプロパティについては,システム管理者に問い合わせてください。
setenv (“HADOOP_HOME”,/道路/ / hadoop /安装的setenv ()“SPARK_HOME”,/道路/ /火花/安装的);集群= parallel.cluster.Hadoop;%可选,如果你想控制确切的工人数量:cluster.SparkProperties (“spark.executor.instances”)=“16”;mapreduce(集群);
設定手順で,mapreduce
を使用してクラスター実行環境を設定します。次の手順で,高配列を作成します.tall配列の作成後にクラスター実行環境の変更または削除を行った場合,高配列は無効になり,再作成しなければなりません。
逐次で開発してローカルワーカーを使用しない場合は,次のコマンドを入力します。
mapreduce (0);
環境変数およびクラスタープロパティの設定後,ローカルマシンではなく火花対応Hadoop上でMATLABの高表の例(MATLAB)を実行できます。データストアを作成して高表に変換します.MATLABにより,高表に対して以降の計算を実行する火花ジョブが自動的に開始されます。
ds =数据存储(“airlinesmall.csv”);varnames = {“ArrDelay”,“DepDelay”};ds。SelectedVariableNames = varnames;ds。TreatAsMissing =“NA”;
データストアから高テーブルtt
を作成します。
tt =高(ds)
在Hadoop集群上启动一个Spark作业。这可能需要几分钟…完成。tt = M×2高的桌子阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列,阵列
この表示は,行数米
が未知であることを示しています。米
は計算が完了するまではプレースホルダーです。
高テーブルから到着遅延ArrDelay
を抽出します。このアクションで,以降の計算に使用する新たな高配列変数が作成されます。
一个= tt.ArrDelay;
高配列に対して一連の操作を指定できます。この操作は,收集
を呼び出すまで実行されません。こうすることで,長時間かかる可能性のある複数のコマンドをバッチ処理できます。例として,到着遅延の平均と標準偏差を計算します。これらの値を使用して,平均値から1標準偏差内にある遅延の上下のしきい値を作成します。
m =意味着(,“omitnan”);s =性病(,“omitnan”);one_sigma_bounds = [m-s m m+s];
收集
を使用してone_sigma_bounds
を計算し,その解をメモリに格納します。
sig1 =收集(one_sigma_bounds)
使用Spark簇对tall表达式进行评估:-通过1 / 1:在0.95秒内完成评估,在1.3秒内完成评估,sig1 = -23.4572 7.1201 37.6975
複数の事項を一度に評価する場合は,複数の入力と出力を收集
に指定できます。これにより,それぞれの高配列で收集
を個別に呼び出すよりも高速になります。例として,到着遅延の最小値と最大値を計算します。
[max_delay, min_delay] =采集(max(a),min(a))
max_delay = 1014 min_delay = -64
クラスターワーカー上でMATLABを起動する場合,これらの例では,より長い時間が初回での完了にかかります。
火花対応Hadoopクラスター上で高配列を使用する場合,mapreduce実行環境が存在している限り,Hadoopクラスターの計算リソースは予約されています。これらのリソースをクリアするには,mapreduceを削除しなければなりません。
删除(gcmr);
mapreduce (0);
数据存储
|收集
|mapreduce
|parallel.cluster.Hadoop
|表格
|高