0

実行に約1秒かかり、ファイルを入力として受け取り、別のファイルを出力として生成するプログラムがあります。問題は、1 秒間に約 30 個のファイルを処理できなければならないことです。処理するファイルはキューとして利用でき (memcached で実装)、正確な順序で処理する必要はないため、基本的にはプログラムのインスタンスが処理するファイルをチェックアウトして処理します。システム リソースが利用可能になったときにプログラムのインスタンスを自動的に起動するプロセス マネージャーを使用できます。

簡単に言うと、「システム リソース」は単に「一度に最大 2 つのプロセス」を意味しますが、別のマシンに移動すると、これは 2 または 10 または 100 などになる可能性があります。少なくとも、ユーティリティを使用してこれを処理できます。そして複雑な最後に、これらのマシンは専用であるため、CPU が使用可能なときはいつでも別のプロセスを立ち上げたいと考えています。CPU 時間が制約リソースのようです - プログラムはメモリ集約的ではありません。

この種のプロセス管理を実現できるツールは何ですか?

4

1 に答える 1

0

Storm - 詳細を知らなくても、Backtype Stormをお勧めします。しかし、それはおそらく現在のコードを完全に書き直すことを意味します。:-)

詳細についてはTutorialを参照してください。ただし、基本的には作業のタプルを取り、ワーカー ノードのトポロジを介してそれらを分散します。「スパウト」はトポロジーに作業を放出し、「ボルト」はグラフ内のステップ/タスクであり、そこで何らかの作業が行われます。ボルトが作業を終了すると、同じ/新しいタプルをトポロジーに戻します。ボルトは並列または直列で機能します。

于 2012-05-31T20:06:08.417 に答える