13

.NET言語を使用してAmazonElasticMapReduce(http://aws.amazon.com/elasticmapreduce/ )のmap / reduceジョブを作成することは可能ですか?特にC#を使用したいと思います。

予備調査はそうではないことを示唆しています。上記のURLのマーケティングテキストは、.NET言語に言及することなく、「Java、Ruby、Perl、Python、PHP、R、またはC++の選択肢」があることを示唆しています。このAmazonスレッド(http://developer.amazonwebservices.com/connect/thread.jspa?messageID=136051-"C#/ F#map / reducersのサポート")は、「現在、AmazonElasticMapReduceはMonoプラットフォームまたはC#やF#などの言語。」

上記はそれができないことを示唆しています。ただし、回避策があるかどうか疑問に思っています。たとえば、自分のアカウントのElastic MapReduceマシンイメージを変更して、そこにMonoをインストールできますか?

別の方法として、Amazon FAQ「Jarに必要な他のソフトウェアの使用」(http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/index.html?CHAP_AdvancedTopics.html)および「追加のファイルとライブラリの使用方法」で提案されています。 MapperまたはReducerを使用する」(http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/index.html?addl_files.html)は、Map/Reduceジョブの最初のステップをMonoをにインストールすることです。ローカルインスタンス。それはちょっと非効率に聞こえますが、多分それはうまくいくでしょうか?

おそらく、賢明な代替策は、Elastic MapReduceの利便性を放棄し、EC2に独自のHadoopクラスターを手動でセットアップすることです。それなら、Monoを問題なくインストールできると思います。

4

4 に答える 4

5

Hadoopストリーミングを使用し、Ahead Of Timeコンパイラを使用してC#コードをネイティブコードにコンパイルすることで、おそらく回避策が考えられます(http://www.mono-project.com/AOTを確認してください)。バイナリは、C++プログラムと同じようにS3から実行できると思います。

リードコプシーの答えは正しくありません。VB.NETライブラリは、ジョブの作成、開始および停止用ですが、Hadoopジョブで実際に実行されているコードに関するものではありません。

于 2010-03-26T18:48:01.723 に答える
3

はい、以前の回答者が示唆したように、ブートストラップアクションを使用することは可能です。

ブログ投稿(http://atbrox.com/2011/02/07/an-example-of-using-f-and-c-netmono-with-amazons-elastic-mapreduce-hadoop/)には、モノラルのC#マッパーとF#レデューサー

于 2011-02-06T23:23:21.210 に答える
2

Elastic MapReduceに「ブートストラップアクション」機能が追加されました。これは、Amazonが現在次のように説明しています。

ブートストラップアクションは、Hadoopを開始する前にElasticMapReduceインスタンスでスクリプトを実行できるようにするメカニズムです。ブートストラップアクションスクリプトはAmazonS3に保存され、新しいジョブフローを作成するときにAmazonElasticMapReduceに渡されます。ブートストラップアクションスクリプトはAmazonS3からダウンロードされ、ジョブフローが実行される前に各インスタンスで実行されます。

ブートストラップアクションスクリプトは、Ruby、Python、Perl、bashなど、ジョブフローインスタンスにすでにインストールされている任意の言語で記述できます。

http://docs.amazonwebservices.com/ElasticMapReduce/latest/DeveloperGuide/index.html?introduction.htmlを参照してください)

これの1つの推奨される使用法は、クラスターマシンにソフトウェアをインストールすることです。これを使用して、クラスターマシンに.NETランタイム環境(すべてのElastic MapReduceマシンがLinuxを実行していると想像するため、MicrosoftではなくMono)をインストールできる可能性があります。(無人インストールがどれほど難しいかわかりません。何かアイデアはありますか?)そうしたら、ElasticMapReduceがサポートしているように見えるHadoopストリーミングを使用して.NETマッパー/リデューサーに呼び出すことができます。

于 2010-04-14T15:49:57.643 に答える
0

C#を含む任意の.NET言語からVB.NETライブラリを使用できるはずです。

于 2009-07-27T20:54:16.820 に答える