2016-05-01 5 views
0

私は25ブロックのデータを持っており、複製係数は1であるとします。マッパーはデータの1ブロックを読み込んで処理するのに約5分必要です。次に、1つのワーカーノードの時間をどのように計算できますか?約15のノードは何ですか?レプリケーションファクタを3に変更すると時間が変わるのですか? 私は本当に助けが必要です。ファイルを処理するのにどれくらい時間がかかりますかワーカーノードが1つだけの場合?

答えて

0

まず、私は問題に関するいくつかの科学論文を読む助言をします(Google Scholarは良い出発点です)。

ここで少し議論します。私の最新の実験から、処理時間は処理したいデータの量と非常に強く関係している(合理的である)と結論づけました。私たちのクラスタでは、平均してMapperが128MBのブロックを読み取るのに7〜8秒かかります。何をしているかリデューサーマッパーが生成

  1. どのくらいのデータ、詳細表示を隠すHadoopのは
  2. シャッフルを実行するために必要な時間を決定します:今、あなたは、全体の実行時間を予測するために考慮する必要があるいくつかの要因があります?それは何らかの反復処理をしますか? (遅いかもしれません!)
  3. リソースの設定は何ですか? (同じマシン上で実行できるマッパーとリデューサーの数はどれくらいですか?)
  4. 最後に他のジョブが同時に実行されていますか? (これは、Reducerスロットが有用なことを行うのではなく、データを待つことができるため、ジョブを大幅に遅くしている可能性があります)。

すでに1台のマシンでは、ジョブの実行時間を予測する作業が複雑になっています。基本的に私の研究では、平均で1台のマシンが20〜50MB /秒で処理できると結論づけられました(レートは次の式に従って計算されます:合計入力サイズ/合計ジョブ実行時間)。処理速度にはステージング時間(アプリケーションが開始され、必要なファイルをクラスタにアップロードするなど)が含まれます。処理速度はユースケースごとに異なり、入力サイズ、さらに重要なマッパーのデータ量によって大きく左右されます(この値はインフラストラクチャ用であり、異なるマシン構成では完全に異なる実行時間が表示されます)。

実験のスケーリングを開始すると、パフォーマンスは平均的に向上しますが、私の研究では線形ではないと判断し、自分の体調に合わせる必要があります。ジョブ実行時間に近似する変数。

あなたのアイデアを伝えるために、私は結果の一部を分かち合います。 1つのノードで〜46MBytes /秒、2つのノードで〜73MBytes /秒、3つのノードで〜85MBytes /秒でした(私の場合、複製要素はノードの数に等しい) 。

問題は複雑であり、それを解決するには時間と忍耐といくつかの分析スキルが必要です。楽しむ!

関連する問題