最後に12ノードの環境で、複数のHadoopジョブを実行した場合の処理性能について説明する。通常は、1台のサーバー上で複数の処理を同時に実行すると、リソースの競合が発生して性能が低下する。Hadoopで同様の問題が発生するのか調べた。
検証では、同一のHadoopクラスター上で同一処理内容のHadoopジョブを二つ動作させた。キャッシュの影響を排除するために、各ジョブは別のデータを処理するようにしている。
結果はキーの分布が一様な場合とべき分布の場合で異なった(図9)。
キー分布が一様なデータを使いジョブを二つ同時に実行した場合、ジョブを単独で実行した場合と比べて、性能は2%向上しただけだった。
これに対して、キーをべき分布にしたデータで、検証(3)の対策2を実施していないジョブを二つ同時に実行すると、単独実行の場合に比べて、2ジョブ同時実行の性能が54%向上した。
理由は図10のように考えられる。キー分布が一様な場合はジョブ1およびジョブ2のMapperとReducerはいずれもフルに全リソースを使う。その結果、各ジョブの処理時間はいずれも約2倍に延び、2ジョブ同時実行の性能は1ジョブ単独実行とほぼ同じになる。
一方、キー分布に偏りがあるときは、図8で示したように、特定のReducerのみが動作する状態が生まれる。
その状態では、Hadoopは二つのジョブを別々のリソースで実行するように調整するため、処理時間は延びない。その結果、2ジョブ同時実行の性能は1ジョブ単独実行より向上する。
実際のシステムでは、異なる特性のジョブを複数同時に実行するので、キー分布が偏ったときのように、同時実行で全体の性能向上が見込めるだろう。ジョブごとに、リソースを占有するタイミングがずれるためだ。