HadoopのMapReduce:フェーズ、入力と出力、機能と利点
公開: 2020-12-24Hadoop MapReduceは、大量のデータを処理するアプリケーションを作成するために使用されるプログラミングモデルおよびソフトウェアフレームワークです。 MapReduceプログラムには、MapとReduceの2つのフェーズがあります。
マップタスクには、データセットを取得して別のデータセットに変換することによるデータの分割とマッピングが含まれます。ここで、個々の要素はタプル、つまりキーと値のペアに分割されます。 その後、Reduceタスクはデータをシャッフルして削減します。つまり、キーに基づいてデータタプルを結合し、それに応じてキーの値を変更します。
Hadoopフレームワークでは、MapReduceモデルがデータ処理のコアコンポーネントです。 このモデルを使用すると、構成を変更するだけで、アプリケーションをスケーリングして、クラスター内で数百、数千、およびそれ以上のマシンを実行することが非常に簡単になります。 これは、クラウドコンピューティングのモデルのプログラムが本質的に並列であるためでもあります。 Hadoopには、Java、Ruby、Python、C++などの多くの言語でMapReduceを実行する機能があります。 mapreduceアーキテクチャの詳細をご覧ください。
目次
入力と出力
MapReduceモデルは、<key、value>のペアで動作します。 ジョブへの入力を<key、value>ペアのセットと見なし、ジョブの出力として異なる<key、value>ペアのセットを生成します。 データ入力は、このフレームワークの2つのクラス、つまりInputFormatとRecordReaderによってサポートされます。
前者は、マップタスクのために入力データをどのように分割するかを決定するために参照され、後者は入力からデータを読み取ります。 データ出力には、OutputFormatとRecordWriterの2つのクラスもあります。 最初のクラスはデータシンクプロパティの基本的な検証を実行し、2番目のクラスは各レデューサー出力をデータシンクに書き込むために使用されます。
MapReduceのフェーズとは何ですか?
MapReduceでは、データは次のフェーズを通過します。

入力分割: MapReduceモデルの入力は、入力分割と呼ばれる小さな固定サイズの部分に分割されます。 入力のこの部分は、単一のマップによって消費されます。 入力データは通常、HDFSに保存されているファイルまたはディレクトリです。
マッピング:これは、各分割のデータが1行ずつマッパー関数に渡されて処理され、出力値が生成される、map-reduceプログラム実行の最初のフェーズです。
シャッフル:これは、マッピングの出力フェーズの一部であり、関連するレコードが出力から統合されます。 これは、マージとソートで構成されています。 したがって、同じキーを持つすべてのキーと値のペアが結合されます。 ソートでは、マージステップからの入力が取得されてソートされます。 キーと値のペアを返し、出力を並べ替えます。
削減:シャッフルフェーズからのすべての値が結合され、単一の出力値が返されます。 したがって、データセット全体を要約します。

また読む: Mapreduceインタビューの質問と回答
MapReduceはどのように機能しますか?
Hadoopは、タスクを2つの部分に分割します。分割とマッピングを含むマップタスクと、シャッフルとリデューシングを含むリデュースタスクです。 これらは、上記のセクションのフェーズで言及されました。 これらのタスクの実行は、JobTrackerおよびMultipleTaskTrackerと呼ばれる2つのエンティティによって制御されます。
実行のために送信されるすべてのジョブには、NameNodeに存在するJobTrackerと、DataNodeに存在する複数のタスクトラッカーがあります。 ジョブは、クラスター内の複数のデータノードで実行される複数のタスクに分割されます。 JobTrackerは、さまざまなデータノードで実行するタスクをスケジュールすることによってアクティビティを調整します。
タスクトラッカーは、個々のタスクの実行を管理します。 また、進捗レポートをJobTrackerに送信します。 定期的に、システムの現在の状態を通知するためにJobTrackerに信号を送信します。 タスクに障害が発生すると、JobTrackerは別のタスクトラッカーでタスクを再スケジュールします。
MapReduceの利点
このモデルを使用するアプリケーションには、いくつかの利点があります。 これらは

- –ビッグデータは簡単に処理できます。
- –データセットは並列処理できます。
- –構造化、非構造化、半構造化など、あらゆる種類のデータを簡単に処理できます。
- –高いスケーラビリティが提供されます。
- –単語の出現を数えるのは簡単で、これらのアプリケーションは大量のデータ収集を行うことができます。
- –回答者の大規模なサンプルにすばやくアクセスできます。
- –データ分析では、汎用ツールを使用してツールを検索できます。
- –負荷分散時間は大規模なクラスターで提供されます。
- –ユーザーの場所や状況などのコンテキストを抽出するプロセスは簡単に実行できます。
- –これらのアプリケーションには、優れた一般化パフォーマンスと収束が提供されます。
必読: MapreduceとApache Spark
結論
HadoopでのMapReduceについて詳しく説明しました。 また、導入部では、フレームワークの簡単な説明と、MapとReduceの両方の定義を提供しました。 このモデルで使用されるさまざまな用語の定義は、入力と出力の詳細とともに示されています。
MapReduceフレームワークに含まれるさまざまなフェーズの詳細な説明は、作業がどのように編成されるかを詳細に示しています。 アプリケーションにMapReduceを使用する利点のリストは、その使用と関連性を明確に示しています。
ビッグデータについて詳しく知りたい場合は、ビッグデータプログラムのソフトウェア開発スペシャライゼーションのPGディプロマをチェックしてください。このプログラムは、働く専門家向けに設計されており、7つ以上のケーススタディとプロジェクトを提供し、14のプログラミング言語とツール、実践的なハンズオンをカバーしています。ワークショップ、トップ企業との400時間以上の厳格な学習と就職支援。
世界のトップ大学からオンラインでソフトウェア開発コースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。
