2016-07-07 7 views
3

Hadoopの新機能はこちら。ジョブがuberモードで実行されている場合、ApplicationMasterはResourceManagerからコンテナを要求しません。その代わりに、単一のノード上で実行されているAMは、それ自身のプロセスでジョブ全体を実行するだけです。これは、RMを処理する必要性のオーバーヘッドを低減するので、有利である。Hadoopのuberモードの目的は何ですか?

わかりません:1つのノードで妥当な時間内に完了できるほどジョブが小さければ、最初にMapReduceジョブを送信するポイントは何ですか? MapReduceは、複数のマシン間で並列に計算を実行できるようにすることで、計算時間を短縮します。 1つのノードだけを使用する予定の場合は、通常のプログラムを作成してローカルのマシンで実行するのはなぜでしょうか?

答えて

1

おそらく、いくつかの理由があるかもしれない:

  1. あなたはそれがユーバーモードで実行する複数のスロットを使用して起動していない可能性があり、その場合には、必要に応じてスケールアップすることができ、再利用可能なプロセスを、持っています。
  2. 物事を単純にする。あなたはその1つの仕事を書くことはほとんどありません。通常は、さまざまな量のデータを処理するものがたくさんあります。異なる方法を使用してデータを処理する理由を変更し、特定のジョブを選択する理由
  3. MapReduceの外部で実行されているプログラムは、障害回復など、フレームワークが提供する多くの利点を失う可能性があります。
0

Apache Crunchで経験した特定のシナリオは、さまざまなDoFn(コアロジックが記述されている)によってスピンされたMapReduce(MR)ジョブの数で構成され、各DoFnはMapおよび/またはこのシナリオでは、PTable/PCollection上で実行されるこれらのDoFnによって処理されるデータの量に基づいて、出力が一般に不変の分散オブジェクト(PTable/PCollection)に格納されるジョブを減らし、フレームワークはパイプラインの各MRジョブを実行するかどうかを決定しますまたはノーマルモードである。したがって、このパイプラインの最終的なジョブカウンターを見ると、uberおよび/または通常のMRジョブの両方を混在させることができます。

M/Rジョブが増分および全負荷モードで実行される別のシナリオを考えてください。同じロジックには、マッパーおよびレデューサーの最小数で処理できるより小さいデータが供給されてもよく、代わりにフルより多くのマッパーとリデューザーを処理するために必要な履歴データの負荷です。したがって、本質的にロジックは変わりませんが、データとインプットスプリットの数が変化します。その場合、Hadoopクラスターを出入りして、フレームワークがモードを決定するようにします(uberまたはnormal)。

関連する問題