5

AWS で実行する mapreduce プロジェクトを開始しようとしていますが、Java または C++ のいずれかを使用する選択肢が提示されました。

Java でプロジェクトを作成すると、より多くの機能を利用できるようになることは理解していますが、Hadoop ストリーミングを使用して C++ でそれを実現することもできます。

念のために言っておきますが、私はどちらの言語のバックグラウンドもほとんどありません。同様のプロジェクトが C++ で行われており、コードを利用できます。

私の質問: この追加機能は AWS から利用できますか? それとも、クラウドをより詳細に制御できる場合にのみ関連しますか? ある言語または別の言語でより適切に機能する Hadoop 用のプラグインの入手可能性など、決定を下すために心に留めておくべきことは他にありますか?

前もって感謝します

4

3 に答える 3

6

AWS で Hadoop を実行するには、いくつかのオプションがあります。最も簡単なのは、Elastic MapReduce サービス ( http://aws.amazon.com/elasticmapreduce ) を介して MapReduce ジョブを実行することです。http://archive.cloudera.com/docs/ec2.htmlで説明されているように、EC2 で Hadoop クラスターを実行することもできます。

独自の入出力フォーマット、パーティショナー、およびコンバイナーを作成する必要があると思われる場合は、後者のシステムで Java を使用することをお勧めします。仕事が比較的単純で、Hadoop クラスターを他の目的で使用する予定がない場合は、最も使い慣れた言語を選択し、EMR を使用することをお勧めします。

いずれにせよ、頑張ってください!

開示: 私は Cloudera の創設者です。

よろしく、ジェフ

于 2010-01-06T02:08:29.700 に答える
1

私は、現在のコードを C++ から Java に変更する際に起こりうる欠点に対処するよりも、Java の柔軟性の方が重要であると判断しました。

ご回答ありがとうございます。

于 2010-01-06T18:28:50.787 に答える
0

それはあなたのニーズに依存します。あなたのインプット/アウトプットは何ですか?単純なテキストファイルですか?改行区切りのあるレコード? 特別なコンバイナーが必要ですか?パーティショナー?

つまり、Hadoop の基本だけが必要な場合は、ストリーミングで問題ないということです。ただし、(独自のビジネス ロジックからではなく、hadoop フレームワークから) もう少し複雑にする必要がある場合は、hadoop jar の方が柔軟です。

さぎえ

于 2009-12-31T14:19:37.583 に答える