Skip to main content
QUICK REVIEW

[論文レビュー] Hadoop Performance Models

Herodotos Herodotou|arXiv (Cornell University)|Jun 6, 2011
Cloud Computing and Resource Management被引用数 112
ひとこと要約

本稿では、Hadoop MapReduceジョブの包括的な数学的パフォーマンスモデルを提示しており、実行を細分化されたフェーズ(例:Read, Map, Spill, Shuffle, Reduce, Write)に分解する。このモデルは、設定可能なパラメータ、Hadoopの設定、プロファイル統計を用いてI/O、CPU、ネットワークコストを正確に推定可能であり、ジョブのパフォーマンス向上を目的とした設定最適化を可能にする。

ABSTRACT

Hadoop MapReduce is now a popular choice for performing large-scale data analytics. This technical report describes a detailed set of mathematical performance models for describing the execution of a MapReduce job on Hadoop. The models describe dataflow and cost information at the fine granularity of phases within the map and reduce tasks of a job execution. The models can be used to estimate the performance of MapReduce jobs as well as to find the optimal configuration settings to use when running the jobs.

研究の動機と目的

  • ジョブ実行コストへの影響を特定・定量化するため、Hadoop MapReduceジョブの正確なフェーズレベルのパフォーマンスモデルを構築すること。
  • 主なHadoop設定パラメータ(例:バッファサイズ、スパイラル閾値、圧縮設定)がジョブコストに与える影響を特定・定量化すること。
  • マップフェーズとリデュースフェーズの両方におけるI/O、CPU、ネットワークオーバーヘッドを含めた、エンドツーエンドのコストをモデル化すること。
  • 完全な実行なしにジョブパフォーマンスを分析的に推定可能とする仕組みを提供し、効率的なジョブ設定推薦を可能とすること。
  • 数学的モデリングを用いたコスト意識に基づいた設定選択によるMapReduceジョブパフォーマンス最適化のフレームワークを提供すること。

提案手法

  • モデルは、マップフェーズを5つに分解:Read, Map, Collect, Spill, Merge;リデュースフェーズを4つに分解:Shuffle, Merge, Reduce, Write。
  • 各フェーズには、Hadoop設定(例:io.sort.mb, mapred.reduce.tasks)、プロファイル統計(例:入力ペアの幅、関数の選択性)、コスト要因(例:バイトあたりのI/O、CPU、ネットワーク)といった入力パラメータに基づいたコスト関数が割り当てられる。
  • コスト関数は時間ベースの指標を用いる:I/Oおよびネットワークコストはバイトあたり、CPUコストはキーバリュー・ペアあたり、または圧縮/解凍のバイトあたり。
  • 設定フラグに応じてコンponents(例:combine関数、圧縮)の条件付き有効化を実現するため、恒等関数 I(x) が使用される。
  • 全マップおよびリデュースタスクのコストを集計し、ノードおよびタスクの制限(pMaxMapsPerNode, pMaxRedPerNode)に応じてスケーリングすることで、全体のジョブコストを解析的に計算する。
  • ネットワークコストはシャッフル中に転送される合計データ量としてモデル化され、非ローカルデータ移動を考慮する:netTransferSize = finalOutMapSize × pNumMappers × (pNumNodes−1)/pNumNodes。

実験結果

リサーチクエスチョン

  • RQ1フェーズレベルの数学的モデルを用いて、Hadoop MapReduceジョブのパフォーマンスをどのように正確に予測できるか?
  • RQ2マップおよびリデュースタスクの異なるフェーズにおいて、I/O、CPU、ネットワークコストの相対的寄与度はどの程度か?
  • RQ3Hadoop設定パラメータ(例:バッファサイズ、スパイラル閾値、圧縮設定)が全体のジョブコストに与える影響はいかほどか?
  • RQ4分析的コストモデルは、パフォーマンス予測および設定最適化の目的で、完全なジョブ実行にどの程度置き換え可能か?
  • RQ5データ特性(例:入力サイズ、圧縮比、マップ/リデュース関数の選択性)がパフォーマンスモデルの結果に与える影響はどの程度か?

主な発見

  • 本モデルは、Hadoopパラメータ、プロファイル統計、システムコスト要因の組み合わせを用いて、フェーズレベルのI/O、CPU、ネットワークコストを集計することで、ジョブコストを正確に推定可能である。
  • 本モデルに圧縮およびcombine関数を組み込むことで、CPUおよびI/Oコストに顕著な影響が生じ、圧縮はI/Oを削減するがCPUのオーバーヘッドを増加させる。
  • ネットワークコストはシャッフル中に転送される合計データ量に比例し、マッパー数および非ローカルデータの割合に依存する。この関係は netTransferSize = finalOutMapSize × pNumMappers × (pNumNodes−1)/pNumNodes としてモデル化される。
  • 解析的コストモデル(式98)は、IOCost_Job、CPUCost_Job、NETCost_Job の合計として総ジョブコストを計算するスケーラブルな方法を提供し、設定最適化を可能にする。
  • 本モデルは、io.sort.mb、mapred.reduce.tasks、圧縮設定といったパラメータの影響を分離することで、設定チューニングを支援する。
  • 本モデルのモジュラ構造により、恒等関数 I(x) を用いたコンponents(例:combine、圧縮)の条件付き有効化が可能となり、柔軟かつ正確なコスト計算が実現される。

より良い研究を、今すぐ始めましょう

論文設計から論文執筆まで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。