10

私は最近、Hadoopをいじってみましたが、MapReduce ジョブのスケジューリング、管理、およびレポート機能に感銘を受けました。これにより、新しいジョブの配布と実行が非常にシームレスになり、開発者はジョブの実装に集中できるようになります。

MapReduce の問題として簡単に表現できないジョブの分散実行用の Java ドメインが存在するかどうか疑問に思っています。例えば:

  • タスクの調整と同期が必要なジョブ。たとえば、タスクの順次実行が含まれる場合がありますが、いくつかのタスクを同時に実行することは可能です。

                   .-- B --.
            .--A --|       |--.
            |      '-- C --'  |
    Start --|                 |-- Done
            |                 |
            '--D -------------'
    
  • 分散したいが、削減する出力を提供しない CPU 集中型のタスク (画像の変換/サイズ変更など)。

そのような分散コンピューティング環境を提供するJavaフレームワーク/プラットフォームはありますか? それとも、この種のことは Hadoop を使用して許容/達成可能ですか? もしそうなら、これらの種類の仕事のためのパターン/ガイドラインはありますか?

4

6 に答える 6

4

それ以来、私の要件の多くに対応しているように見えるSpring BatchSpring Batch Integrationを見つけました。乗り方をお伝えします。

于 2010-01-04T15:40:55.100 に答える
3

クォーツを見てください。ジョブをリモートで管理したり、複数のマシンをクラスタ化してジョブを実行したりするようなものをサポートしていると思います。

于 2009-12-17T14:28:51.330 に答える
0

Redissonフレームワークを試してください。タスクを実行java.util.concurrent.Callableおよびスケジュールするための簡単な API を提供します。java.lang.Runnable分散Executor サービスScheduler サービスに関するドキュメントは次のとおりです。

于 2016-08-25T14:11:15.993 に答える
0

CPU を集中的に使用するタスク用のワークフロー エンジンを探していると思います (「科学的なワークフロー」も知っています。たとえばhttp://www.extreme.indiana.edu/swf-survey )。しかし、どのように分散させたいのかわかりません。通常、すべてのワークフロー エンジンには「単一障害点」があります。

于 2009-12-16T14:21:53.633 に答える
0

かなりの数の問題が map-reduce 問題として表現できると思います。

構造に合わせて変更できない問題については、Java のExecutorServiceを使用して独自の設定を行うことができます。しかし、それは 1 つの JVM に限定され、非常に低レベルになります。ただし、調整と同期は簡単になります。

于 2009-12-16T14:26:53.670 に答える