2014-01-07 9 views
5

AmazonでMap ReduceとしてカスタムC++ジョブを実行する必要があり、このためにHadoopストリーミングを使用する予定でした。 C++マッパーの実行ファイルは、何十というカスタムライブラリに依存していますが、そのうちのいくつかはビルドに時間がかかります。カスタムEMRでAmazon EMRを実行していますか?

私はEMRがカスタムAMIをサポートすることを期待していました(既に1つが組み込まれています)。しかし、文書を慎重に見てみると、あらかじめ定義された画像(http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-cli-commands.html)でEMRを実行することしかできないようです。

何か不足していますか?実際に定義済みのAMIだけがサポートされている場合、これを実行するための最良のオプションは何ですか?実行可能ファイルは、明らかにs3上にありますが、実際にはバンドルして共有ライブラリに依存しないようにすることはできますか?

ありがとうございました。

答えて

1

私も同じことを調べています。これを達成するためのドキュメントの最善のオプションを最初に見てみると、カスタムブートストラップオプションを実行することです。

http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-bootstrap.html

しかし、私たちのためには、カスタムスクリプトを実行するために、15〜20分かかります。私は、AMIをカスタマイズし、必要なソフトウェアをAMIに追加する方法があることを期待しています。

4

Hadoopクラスタノードで必要とされる多くのソフトウェアツールと構成のため、Amazonが提供するAMIのみがEMRで許可されています。 http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-ami.html

標準のブートストラップ技術を使用して、クラスタで実行する必要がある追加ソフトウェアをインストールできます。 ブートストラップアクションの詳細については、http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-bootstrap.htmlを参照してください。

あなたのユースケースに戻る: あなたのユースケースではブートストラップに時間がかかりすぎるのはなぜですか?パッケージがたくさんあるので?ソースからコンパイルしているからですか?

後者の場合、.debパッケージをビルドしてカスタムリポジトリからインストールして、ブートストラッププロセスを高速化する価値があります。

インストールするパッケージが多いからといって、今日は明白な解決策がないのでしょうか?ブートストラップ時にEBSのスナップショットやボリュームが作成され、添付されていると考えることができますが、その実現可能性は実際のユースケースによって異なります。

2

カスタムAMIは、実際には非常に興味深い使用例です。 1つのオプションはQuboleを使用することです。カスタムAMIのビルドサポートを提供します。必要なすべてのライブラリをインストールし、Quboleのクールな機能とオートスケーリング、スポットインスタンスなどのサポートを提供します。

免責事項:私はQuboleのために働いています。

関連する問題