このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
サポートサポートされる:Linux®のみ。
この例では,MCC.
コマンドを使用してスタンドアロンMATLAB®MapReduceアプリケーションを作成し,Hadoop®クラスタークラスター実行する方法をを明します。
目的:航空路線の最大到着遅延時間を特定のデータセットから計算します。
データセット: | Airlinesmall.csv. |
说明: | 1987年航空路線のから2008年までの出発および到着情報。 |
場所: | /usr/local/MATLAB/R2021a/工具箱/ matlab /演示 |
MATLAB検索パスで認識される新しい作業フォルダーを作成して,この例を開始します。
MATLABを起動する前に,ターミナルで,環境変数hadoop_prefix.
がhadoopインストールインストールフォルダーをポイントするように设定しますするにに例を示し示し
シェル | コマンド |
---|---|
csh / tcsh |
% setenv HADOOP_PREFIX /usr/lib/hadoop |
bash |
$ export hadoop_prefix = / usr / lib / hadoop |
メモ
この例は,/usr/lib/hadoop
をHadoopがインストールされたディレクトリとして使用しています。使用しているHadoopインストールディレクトリが異なる場合があります。
環境変数hadoop_prefix.
を設定せずにMATLABを起動した場合は,MATLABの起動後すぐに,MATLABコマンドプロンプトでMATLAB関数setenv
を使用して,これを設定します。以下に例を示します。
setenv ('hadoop_prefix',“/ usr / lib / hadoop”)
Hadoopクラスターのすべてのワーカーノードからアクセスできるフォルダーに,Matlab运行时をインストールします。このこの例で,Matlab运行时フォルダーの場所として,/ usr / local / matlab / matlab_runtime /V910.
をを用してます。
Matlab运行时を没有していいないは,网サイト//www.tatmou.com/下载188bet金宝搏products/compiler/mcr
からダウンロードできます。
メモ
MATLABリリースに対応するMatlab运行时のバージョン番号の詳細については,このリストを参照してください。
関地图数maxArrivaldelaymapper.m
を/usr/local/MATLAB/R2021a/工具箱/ matlab /演示
フォルダーから作業フォルダーにコピーします。
詳細は,地图関数の作成を参照してください。
减少関数maxArrivalDelayReducer.m
を
フォルダーから作業フォルダーにコピーします。matlabroot.
/工具箱/ matlab /演示
詳細は,减少関数の作成を参照してください。
HDFS™でディレクトリ/ user /
を作成し,ファイル<用户名>
/数据集Airlinesmall.csv.
をそのディレクトリにコピーします。ここで,
はHDFSでのユーザー名を表します。<用户名>
$./hadoop fs -copyfromlocal airlinesmall.csv hdfs://主机:54310 /用户/<用户名>
/数据集
MATLABを起動し,環境変数hadoop_prefix.
が設定されていることを確認します。コマンドプロンプトで、次を入力します。
> >采用'hadoop_prefix')
ANS.
が空の場合は,前出の”前提条件「の节を见直し,环境函数hadoop_prefix.
のの方法ををしてください。
depMapRedStandAlone.m
という名前で新しいMATLABスクリプトを作成します。以下に示す手順にリストされたコードを,このスクリプトファイルに追加します。
Hadoop分散ファイルシステム(HDFS)の航空会社データをポイントする数据存储
を作物成し。
ds =数据存储(hdfs: / / /用户/用户名/数据/ airlinesmall.csv”,...“TreatAsMissing”,“NA”,...“SelectedVariableNames”,{'unqueCarrier',“ArrDelay”});
詳細は,リモートデータの操作を参照してください。
既定の設定で,Hadoopに対して配布するようにアプリケーションを設定します。
配置= matlab.mapreduce.DeployHadoopMapReducer;
matlab.mapreduce.DeployHadoopMapReducer
クラスは,その配布先となるHadoop環境に基づいてスタンドアロンアプリケーションを設定するために使用できます。
たとえば,クラスター上の各ワーカーノードにおいてMatlab运行时の場所を指定する場合は,次のようなコード行を含めます。
配置= matlab.mapreduce.DeployHadoopMapReducer (' MCRRoot ', ' / opt / MATLAB / MATLAB_Runtime /V910.');
/ opt / MATLAB / MATLAB_Runtime
など,既定以外の場所にインストールされていると想定しています。追加のクラスター固有のプロパティを指定する方法の詳細については,matlab.mapreduce.DeployHadoopMapReducer
を参照してください。
メモ
Matlab运行时の場所をmatlab.mapreduce.DeployHadoopMapReducer
クラスの一部として指定すると,スタンドアロンアプリケーションの実行中に指定されたすべてのMatlab运行时の場所がオーバーライドされます。
mapreduce
をを用して実実を定义します。
MR = MAPRECUCER(CONFIG);
関数Mapreduce.
を適用します。
结果= mapreduce (...ds,...@maxArrivalDelayMapper @maxArrivalDelayReducer,...先生,...“OutputType”,“二元”,...“OutputFolder”,'HDFS:///用户/ <用户名> /结果/ myResults');
メモ
…/ myresults
などのHDFSディレクトリは1回だけ書き込みできます。Hadoopクラスターに対してスタンドアロンアプリケーションを複数回実行する予定の場合は,各実行の前に,必ずHDFSの…/ myresults
ディレクトリを削除してください。别别方法として,matlabコードで…/ myresults
ディレクトリの名前を変更し,アプリケーションを再コンパイルすることもできます。
結果のデータストアから結果を読み取ります。
myAppResult = readall(结果)
MCC.
コマンドに-M.
フラグを指定して,スタンドアロンアプリケーションを作成します。
MCC.-M.depMapRedStandAlone.m
-M.
フラグは,コマンドラインから実行できるスタンドアロン実行可能ファイルを作成します。ただし,MCC.
コマンドはそのその结果をインストーラー内にパッケージパッケージできませ
次のコマンドを使用して,Linuxシェルからスタンドアロンアプリケーションを実行します。
$。/ run_depMapRedStandAlone.sh /usr/local/MATLAB/MATLAB_Runtime /V910.
/ usr / local / matlab / matlab_runtime /V910.
はMatlab运行时の場所を示す引数です。
前出のコマンドを実行するする前,次次を力し,ターミナルターミナルに数hadoop_prefix.
が設定されていることを確認します。
$echo $ HADOOP_PREFIX
回声
が空である结合は,前出の「前提条件“の節を参照し,環境変数hadoop_prefix.
のの方法ををしてください。環境変数hadoop_prefix.
が设定されていないない合书,アプリケーションの実行。
次のの力が表示されます。
myAppResult =键值 _________________ ______ ' MaxArrivalDelay”[1014]
その他の地图
関数および减少
関数の例は工具箱/ matlab /演示
フォルダーで使用可能です。他の例を使用して,Hadoop上で実行する同様のスタンドアロンアプリケーションのプロトタイプを作成することができます。詳細は,MapReduceでの効果的なアルゴリズムの構築を参照してください。
スタンドアロンアプリケーションdepMapRedStandAlone
の完成したコードは,以下のとおりです。
数据存储
|tabulartextdatastore.
|KeyValuedAtastore.
|matlab.mapreduce.DeployHadoopMapReducer
|MCC.