同じアルゴリズム (異なる引数) の 1000 以上の異なるバージョンを同時に実行したいのですが、Hadoop はこの状況でパフォーマンスを向上させることができますか? 私は現在、Hadoop についての知識がないので、質問がばかげているように思えるかもしれません。Hadoop がこれについて何かできるかどうかを知りたいだけです。その方法を知る必要はありません。
3 に答える
Hadoop でそれを行うことができます。その機能の一部である分散タスク スケジューリングからのみ利益が得られ、残りの部分からは利益が得られません。
技術的には、次の方法をお勧めします: a) パラメータの各セットを単一の入力分割にする。b) 各マッパーに入力からパラメーターを読み取らせ、HDFS から直接 (または分散キャッシュから) データを読み取らせる。
得られるもの - クラスター全体での負荷の分散、失敗したタスクの再起動。
あなたは Hadoop について間違った方法で考えています。Hadoop を使用することの強みと利点は、「データ集約型」タスクでの分散コンピューティングが可能になるという事実にあります。これは、大量のデータ (数テラバイトから数ペタバイト) に対して比較的少量/単純な処理を行う場合に優れていることを意味します。
したがって、Hadoop を検討している場合、問題は「膨大な量のデータがあるか?」ということです。はいの場合、それはあなたのために働くことができます. 答えはノーのようで、並行処理に使用したいと考えています。この場合、それはあなたのために行く方法ではありません。
いいえ、できません。単純に、同時に実行されているジョブの種類を気にしないためです。OS が入力をキャッシュしようとするため、いくつかのパフォーマンスの向上が見られます。しかし、一般的にフレームワークはこの状況を最適化しません。
Hadoop は、この種のジョブ用に構築されたものではありません。Hadoop で優れたパフォーマンスが得られるとは思えません。