すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:MapReduce 基本用語

最終更新日:Mar 26, 2026

MaxCompute MapReduce ジョブでは、データが「マップ/リデュース」「ソート」「パーティション」「コンバイナー」の 4 つのステージを経由します。各ステージには固有の構成オプションがあり、これらの用語を正しく理解することで、ジョブ設計の精度向上および予期せぬ結果のデバッグが可能になります。

仕組み

MapReduce ジョブにおけるデータフローは、以下の順序で処理されます:

(入力) → map → [combine] → shuffle & sort → reduce → (出力)

本トピックで説明する各用語は、このパイプラインにおける対応するステージまたは構成オプションを表します。

マップ/リデュース

マップタスクまたはリデュースタスクは、以下の 3 つのメソッドを順次実行します:

  1. setup() — 各ワーカーで、処理開始前に 1 回実行されます

  2. map() または reduce() — 各入力レコードに対して実行されます

  3. cleanup() — 各ワーカーで、すべてのレコード処理完了後に 1 回実行されます

実行可能なサンプルについては、「サンプルプログラム」をご参照ください。

ソート

MaxCompute では、2 種類のカラム型を用いてソート動作を制御できます。

カラム型役割カスタム比較関数
ソートカラムソート順序を決定します。マッパーによって生成されたキー・レコード内のカラムから指定します。非対応
グループカラムソートカラムのサブセットです。セカンダリ・ソートに使用されます。非対応

セカンダリ・ソートのサンプルについては、「セカンダリ・ソートのソースコード」をご参照ください。

パーティション

パーティショナーは、マッパーが生成したデータを、パーティションロジックに基づいて複数のリデューサーにルーティングします。MaxCompute では、以下の 2 つのメカニズムをサポートしています。

メカニズム説明
パーティションカラム指定されたカラムに基づくパーティション分割
カスタムパーティショナーユーザー定義のレコードルーティングロジック(リデューサーへの割り当て)

両方の設定が有効な場合、パーティションカラムの設定がカスタムパーティショナーより優先されます。

コンバイナー

コンバイナーは、MapReduce 計算フレームワークにおけるシャッフル段階で実行される任意の最適化機能です。隣接するレコードを結合することで、マッパーからリデューサーへ転送されるデータ量を削減します。

ビジネスロジックに応じて、コンバイナー機能の使用可否を判断できます。コンバイナーの処理ロジックはリデューサーと同一であり、マッパーがデータを生成した後、フレームワークは同一キーを持つすべてのレコードに対してコンバイナーを適用します。

実行可能なサンプルについては、「サンプルプログラム」をご参照ください。