マップリデュースの作業フローは何ですか。
MapReduceのワークフローは次のように要約することができます:
- 入力データを複数の小さなデータブロックに分割することを「切分」と呼びます。それぞれのデータブロックを「入力split」と呼びます。
- マップ(Map):分割されたデータブロックを複数のマップタスクに配信して処理します。各マップタスクは、自分が担当するデータブロックを読み取り、カスタムのマッピング関数に基づいてデータを処理し、データを<key, value>のペアに変換します。
- 要处理中间数据(Shuffle):根据键对Map任务的输出结果进行分区(Partition),并对相同键的值进行排序。
- マージ(Combine):データ転送量を減らすために、各パーティションの<キー、値>ペアをマージします。
- 集約(Reduce):統合された<key, value>ペアを複数のReduceタスクに分配して処理します。各Reduceタスクはカスタムの集約関数によりデータを処理し、出力結果を生成します。
- 複数のReduceタスクの出力を統合して、最終的な結果を形成します。
MapReduceのワークフローはカスタマイズ可能であり、ユーザーは自身のニーズに合わせてMapとReduce関数を作成し、適切なパラメータを設定することでワークフロー全体を調整することができる。