主要内容

このページの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。

スタンドアロンMATLABMapReduceアプリケーションの実行の例

サポートサポートされる:Linux®のみ。

この例では,MCC.コマンドを使用してスタンドアロンMATLAB®MapReduceアプリケーションを作成し,Hadoop®クラスタークラスター実行する方法をを明します。

目的:航空路線の最大到着遅延時間を特定のデータセットから計算します。

データセット: Airlinesmall.csv.
说明:

1987年航空路線のから2008年までの出発および到着情報。

場所: /usr/local/MATLAB/R2021a/工具箱/ matlab /演示

前提条件

  1. MATLAB検索パスで認識される新しい作業フォルダーを作成して,この例を開始します。

  2. 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”

  3. Hadoopクラスターのすべてのワーカーノードからアクセスできるフォルダーに,Matlab运行时をインストールします。このこの例で,Matlab运行时フォルダーの場所として,/ usr / local / matlab / matlab_runtime /V910.をを用してます。

    Matlab运行时を没有していいないは,网サイト//www.tatmou.com/下载188bet金宝搏products/compiler/mcrからダウンロードできます。

    メモ

    MATLABリリースに対応するMatlab运行时のバージョン番号の詳細については,このリストを参照してください。

  4. 関地图数maxArrivaldelaymapper.m/usr/local/MATLAB/R2021a/工具箱/ matlab /演示フォルダーから作業フォルダーにコピーします。

    maxArrivaldelaymapper.m

    詳細は,地图関数の作成を参照してください。

  5. 减少関数maxArrivalDelayReducer.mmatlabroot./工具箱/ matlab /演示フォルダーから作業フォルダーにコピーします。

    maxArrivalDelayReducer.m

    詳細は,减少関数の作成を参照してください。

  6. HDFS™でディレクトリ/ user /<用户名>/数据集を作成し,ファイルAirlinesmall.csv.をそのディレクトリにコピーします。ここで,<用户名>はHDFSでのユーザー名を表します。

    ./hadoop fs -copyfromlocal airlinesmall.csv hdfs://主机:54310 /用户/<用户名>/数据集

手順

  1. MATLABを起動し,環境変数hadoop_prefix.が設定されていることを確認します。コマンドプロンプトで、次を入力します。

    > >采用'hadoop_prefix'

    ANS.が空の場合は,前出の”前提条件「の节を见直し,环境函数hadoop_prefix.のの方法ををしてください。

  2. depMapRedStandAlone.mという名前で新しいMATLABスクリプトを作成します。以下に示す手順にリストされたコードを,このスクリプトファイルに追加します。

  3. Hadoop分散ファイルシステム(HDFS)の航空会社データをポイントする数据存储を作物成し。

    ds =数据存储(hdfs: / / /用户/用户名/数据/ airlinesmall.csv”,...“TreatAsMissing”,“NA”,...“SelectedVariableNames”,{'unqueCarrier',“ArrDelay”});

    詳細は,リモートデータの操作を参照してください。

  4. 既定の設定で,Hadoopに対して配布するようにアプリケーションを設定します。

    配置= matlab.mapreduce.DeployHadoopMapReducer;

    matlab.mapreduce.DeployHadoopMapReducerクラスは,その配布先となるHadoop環境に基づいてスタンドアロンアプリケーションを設定するために使用できます。

    たとえば,クラスター上の各ワーカーノードにおいてMatlab运行时の場所を指定する場合は,次のようなコード行を含めます。

    配置= matlab.mapreduce.DeployHadoopMapReducer (' MCRRoot ', ' / opt / MATLAB / MATLAB_Runtime /V910.');
    このシナリオでは,Matlab运行时がワーカーノード上の/ opt / MATLAB / MATLAB_Runtimeなど,既定以外の場所にインストールされていると想定しています。

    追加のクラスター固有のプロパティを指定する方法の詳細については,matlab.mapreduce.DeployHadoopMapReducerを参照してください。

    メモ

    Matlab运行时の場所をmatlab.mapreduce.DeployHadoopMapReducerクラスの一部として指定すると,スタンドアロンアプリケーションの実行中に指定されたすべてのMatlab运行时の場所がオーバーライドされます。

  5. mapreduceをを用して実実を定义します。

    MR = MAPRECUCER(CONFIG);
  6. 関数Mapreduce.を適用します。

    结果= mapreduce (...ds,...@maxArrivalDelayMapper @maxArrivalDelayReducer,...先生,...“OutputType”,“二元”,...“OutputFolder”,'HDFS:///用户/ <用户名> /结果/ myResults');

    メモ

    …/ myresultsなどのHDFSディレクトリは1回だけ書き込みできます。Hadoopクラスターに対してスタンドアロンアプリケーションを複数回実行する予定の場合は,各実行の前に,必ずHDFSの…/ myresultsディレクトリを削除してください。别别方法として,matlabコードで…/ myresultsディレクトリの名前を変更し,アプリケーションを再コンパイルすることもできます。

  7. 結果のデータストアから結果を読み取ります。

    myAppResult = readall(结果)
  8. MCC.コマンドに-M.フラグを指定して,スタンドアロンアプリケーションを作成します。

    MCC.-M.depMapRedStandAlone.m

    -M.フラグは,コマンドラインから実行できるスタンドアロン実行可能ファイルを作成します。ただし,MCC.コマンドはそのその结果をインストーラー内にパッケージパッケージできませ

  9. 次のコマンドを使用して,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.が设定されていないない合书,アプリケーションの実行。

  10. 次のの力が表示されます。

    myAppResult =键值  _________________ ______ ' MaxArrivalDelay”[1014]

その他の地图関数および减少関数の例は工具箱/ matlab /演示フォルダーで使用可能です。他の例を使用して,Hadoop上で実行する同様のスタンドアロンアプリケーションのプロトタイプを作成することができます。詳細は,MapReduceでの効果的なアルゴリズムの構築を参照してください。

スタンドアロンアプリケーションdepMapRedStandAloneの完成したコードは,以下のとおりです。

depMapRedStandAlone.m

参考

||||

関連するトピック