0

Apache Hadoop は、Google MapReduce の論文に触発されています。MapReduce の流れは、Mapper 用と Reducer 用の 2 組の SIMD (single instruction multiple data) と見なすことができます。リデューサーは、定義済みの「キー」を通じて、マッパーの出力を消費します。MapReduce フレームワーク (および Hadoop) の本質は、データを自動的に分割し、分割数と並列ジョブを決定し、分散リソースを管理することです。

並行して実行する一般的なアルゴリズム (必ずしも MapReducable である必要はありません) があります。私はMapReduceの方法でアルゴリズム自体を実装していません。代わりに、アルゴリズムは単なる単一マシンの python/java プログラムです。このプログラムの 64 個のコピーを並行して実行したいと考えています (プログラムに並行性の問題がないことを前提としています)。つまり、MapReduce フレームワークよりも Hadoop クラスターのコンピューティング リソースに関心があります。この古い方法で Hadoop クラスターを使用できる方法はありますか?

4

1 に答える 1

0

MapReduce についての別の考え方として、MR が変換を行い、Reduce が何らかの集計を行うというものがあります。

Hadoop では、マップのみのジョブも可能です。このようにして、Map プログラムの 64 個のコピーを並行して実行できるはずです。

Hadoop にはスロットの概念があります。デフォルトでは、ノード/マシンごとに 2 つの map スロットと 2 つの reduce スロットがあります。したがって、64 プロセスを並列処理するには、32 ノードが必要です。ノードがハイエンド構成の場合、ノードあたりの M/R スロットの数も増やすことができます。

于 2013-04-10T12:35:43.767 に答える