ビデオ: CrowbarによるHadoop環境の展開と管理 1/3 2024
MapReduceは、Hadoopクラスタのスレーブノードに分散して格納されたデータセットを処理するプログラミングモデルです。ここでの主要な概念は 分裂と征服です。 具体的には、大きなデータセットを多数の小さな部分に分割し、同じアルゴリズムで並列処理する必要があります。
Hadoop分散ファイルシステム(HDFS)の場合、ファイルはすでに一口サイズに分割されています。 MapReduceは、すべての部分を処理するために使用するものです。
<! - 1 - >MapReduceアプリケーションには、このリストに記載されているように、複数のフェーズがあります。
-
データブロックから処理する正確なデータセットを決定します。これは、処理されるレコードがデータブロック内のどこに位置するかを計算することを含む。
-
すべてのレコードが処理されるまで、データセットの各レコードに対して指定されたアルゴリズムを実行します。
データセット内のデータブロックに対して実行されるアプリケーションの個々のインスタンスは、 マッパータスクと呼ばれます。 (これはMapReduceのマッピング部分です)
<! - 2 - > -
各マッパーの出力の暫定的な削減をローカルで実行します。
(出力は暫定的に組み合わされています。つまり、いくつかの一般的なケースでは望ましくないため、このフェーズはオプションです。
-
分割要件に基づいて、各マッパーの結果セットからデータの適用可能なパーティションをグループ化します。
-
マッパーからの結果セットを単一の結果セット、つまりMapReduceの一部を減らすように煮詰めます。
<! - 3 - >マッパー出力データに対して実行されるアプリケーションの個々のインスタンスは、 減速タスク として知られています。 (「Reduce」はMapReduceの名前の一部なので、この段階はオプションである可能性があります。減速機のないアプリケーションは マップのみのジョブ として知られています。マップタスクの結果セットを結合する必要があります)。