既に疑問に思っているように、これはMATLABの実行時の要件のために本質的に困難です。私はCondor上でMATLABコードを実行しようとすると、同様の経験(ランタイムライブラリを配布する必要がありました)がありました。
リストに表示されているオプションに関する限り、オプション1が最適です。また、おそらくLinuxでの作業を避けることはできません。
しかし、より高度なソフトウェア(MATLAB、Octave、Scilabなど)の利便性を失いたくない場合は、Octave実行可能スクリプトと組み合わせてHadoopストリーミングを試すことができます。
Hadoopストリーミングは、実行可能ファイル(実行可能スクリプトか実行可能ファイルかに関係なく、この(http://hadoop.apache.org/common/docs/r0.15.2/streaming .html))。
「実行可能ファイル」が与えられていること、さらにa)stdinから読み込み、b)stdoutに出力を送ることができることです。
GNU Octaveプログラムは、stdinから読み込み、出力をstdout(http://www.gnu.org/software/octave/doc/interpreter/Executable)に送信する機能を備えた実行可能なスクリプト(Linux)に変換することができます。 -Octave-Programs.html)。
は、ファイル(例えば「al.oct」)を作成し、以下の内容で:今
#!/bin/octave -qf (Please note, in my installation i had to use "#!/etc/alternatives/octave -qf")
Q = fread(stdin); #Standard Octave/MATLAB code from here on
disp(Q);
コマンドプロンプト発行から次のコマンドを実行します。
簡単な例として
は、この検討します
chmod + xal。10月
al.octは、あなたが "./al.oct" とそれを実行することができます...今すぐ実行可能です。
>>cat al.oct|./al.oct|sort
や他の言葉で「猫」ファイルal.oct、パイプの出力...:(あなたはHadoopのとそれを使用できるように)標準入力は、stdoutがこれを試すことができますに収まる場所を確認するには実行可能なスクリプトal.octに渡して、al.octの出力をソートユーティリティにパイプします(これは単なる例です。すべてcatというファイルがありますが、al.octは単純なテキストファイルですちょうどこれを使用してください)。
もちろん、OctaveはMATLABコードが呼び出そうとしているすべてのものをサポートしていないかもしれませんが、これはHadoop Streamingを高水準コードの利便性/パワーを失うことなく使用する代替手段です。
グレート提案!私はこれを試してみます.. – Harsh
しかし、これを行うためにhadoopクラスタのすべてのワーカーノードにオクターブをインストールする必要があると思いますが、そうですか?オクターブコードから.outファイルを作成する方法はありませんか?それは非常に役に立ちます.. – Harsh
はい、それはそうです: - /現時点ではOctaveをコンパイルすることはできません。 [this](http://stackoverflow.com/questions/5101219/how-do-i-convert-octave-code-to-c-or-c)と[this](http://octave.1599824 .n4.nabble.com /オクターブから独立したCコード-dd1630298.html)(私は長い間、2番目のものをフォローしていません)。あなたはあなたの従業員を何らかの形で管理する必要があります...あなたのサービスの管理者は、上記のオプションのうち最も実行可能なものを仕事に役立てることができます(?)。 –