相互に独立した多数のWebサービスを取得するバッチジョブがあります。あるREST応答から取得されたデータは、すべての処理が完了したときに一部の軽量統計が計算されることを除いて、別の応答からのデータに依存したり、使用されたりすることはありません。
現在、ペイロードセットは11のセグメントに分散されており、各セグメントは個別のJavaスレッドで実行されます。最後のスレッドが完了すると、最終的な統計が計算されます。各RESTリクエストに、以前に取得したデータに関連する新しいデータがあるかどうかに応じて、バッチ全体に4〜25分かかる場合があります。
バッチサイズは比較的適度であり、データは1時間ごとにしか更新されないため、上記の時間枠は悪くありません。したがって、30分ごとにcronからジョブを実行すると、時系列をスキップする可能性が実質的になくなります。ただし、バッチサイズの拡大を検討しています。
私はHadoopを初めて使用し、このユースケースシナリオがMapReduce実装の良い例であるかどうか疑問に思いました。そして、一般的に、マルチスレッドアプリを使用する場合とHadoopにステップアップする場合をどのように決定しますか?
ありがとう