Hadoopでのデータ処理:Hadoopコンポーネントの説明[2022]

公開: 2021-01-03

何年にもわたってワールドワイドウェブが指数関数的に成長するにつれて、生成されるデータも指数関数的に成長しました。 これにより、大量のデータが作成され、この膨大な量のデータを従来のリレーショナルデータベースシステムで処理および保存することは困難でした。

また、作成されたデータは、構造化された形式だけでなく、ビデオや画像などの非構造化された形式でもありました。この種のデータは、リレーショナルデータベースでは処理できません。 これらの問題に対処するために、Hadoopが誕生しました。

Hadoopのデータ処理に入る前に、Hadoopとそのコンポーネントの概要を説明しましょう。 Apache Hadoopは、大量のデータを迅速かつ効率的に保存および処理できるようにするフレームワークです。 大量の構造化データと非構造化データを保存するために使用できます。 Hadoopエコシステムとコンポーネントの詳細をご覧ください。

Hadoopの重要な構成要素は次のとおりです。–

目次

Hadoopのビルディングブロック

1. HDFS(ストレージレイヤー)

名前が示すように、Hadoop分散ファイルシステムはHadoopのストレージレイヤーであり、分散環境(マスターおよびスレーブ構成)にデータを保存する役割を果たします。 データをいくつかのデータブロックに分割し、異なるデータノードに保存します。 これらのデータブロックは、ノードの1つがダウンしたときにデータが失われるのを防ぐために、さまざまなデータノード間でも複製されます。

データの処理のために実行されている2つの主要なプロセスがあります。–

a。 NameNode

マスターマシンで実行されています。 ファイルシステムに保存されているすべてのファイルの場所を保存し、クラスター全体でデータが存在する場所を追跡します。つまり、ファイルのメタデータを保存します。 クライアントアプリケーションがデータに対して特定の操作を実行する場合、NameNodeと対話します。 NameNodeは要求を受信すると、必要なデータが存在するデータノードサーバーのリストを返すことで応答します。

b。 DataNode

このプロセスは、すべてのスレーブマシンで実行されます。 その機能の1つは、各HDFSデータブロックをローカルファイルシステムの個別のファイルに保存することです。 つまり、実際のデータがブロック形式で含まれています。 ハートビート信号を定期的に送信し、NameNodeからの要求がデータにアクセスするのを待ちます。

2. MapReduce(処理レイヤー)

これは、Javaに基づくプログラミング手法であり、Hadoopフレームワークの上で使用され、大量のデータをより高速に処理します。 多くのデータノードを使用して分散環境でこの巨大なデータを処理し、フォールトトレラントな方法で並列処理と操作の高速実行を可能にします。

MapReduceジョブは、データセットをデータの複数のチャンクに分割します。これらのチャンクは、マッパーによって処理されるために、キーと値のペアにさらに変換されます。 データの生の形式は処理に適していない可能性があります。 したがって、マップフェーズと互換性のある入力データは、InputSplit関数とRecordReaderを使用して生成されます。

InputSplitは、個々のマッパーによって処理されるデータの論理表現です。 RecordReaderは、これらの分割をキーと値のペアの形式をとるレコードに変換します。 基本的に、入力のバイト指向の表現をレコード指向の表現に変換します。

これらのレコードは、データをさらに処理するためにマッパーに送られます。 MapReduceジョブは、主にMapフェーズ、Shuffleフェーズ、Reduceフェーズの3つのフェーズで構成されています。

a。 マップフェーズ

これは、データ処理の最初のフェーズです。 マップフェーズの主なタスクは、RecordReaderからの各入力を処理し、それを中間タプル(キーと値のペア)に変換することです。 この中間出力は、マッパーによってローカルディスクに保存されます。

これらのキーと値のペアの値は、RecordReaderからの入力として受け取った値とは異なる場合があります。 マップフェーズには、ローカルレデューサーとも呼ばれるコンバイナーを含めることもできます。 これらはデータに対して集計を実行しますが、1つのマッパーのスコープ内でのみ実行されます。

計算は異なるデータノード間で実行されるため、同じキーに関連付けられているすべての値を1つのレデューサーにマージすることが不可欠です。 このタスクは、パーティショナーによって実行されます。 これらのキーと値のペアに対してハッシュ関数を実行して、それらをマージします。

また、すべてのタスクがレデューサーに均等に分割されるようにします。 通常、複数のレデューサーを使用している場合、パーティショナーが問題になります。

b。 シャッフルと並べ替えフェーズ

このフェーズでは、マッパーから取得した中間出力がレデューサーに転送されます。 このプロセスはシャッフルと呼ばれます。 マッパーからの出力も、レデューサーに転送する前にソートされます。 ソートは、キーと値のペアのキーに基づいて行われます。 これは、データ全体が受信される前であっても、レデューサーがデータに対して計算を実行するのに役立ち、最終的には計算に必要な時間を短縮するのに役立ちます。

キーがソートされると、レデューサーが入力として別のキーを取得するたびに、以前に受信したデータに対してリデュースタスクの実行を開始します。

c。 フェーズを減らす

マップフェーズの出力は、リデュースフェーズへの入力として機能します。 これらのキーと値のペアを取得し、それらにreduce関数を適用して、目的の結果を生成します。 キーとキーに関連付けられた値は、特定の操作を実行するためにreduce関数に渡されます。

データをフィルタリングまたは結合して、集計された出力を取得できます。 reduce関数の実行後、0個以上のキーと値のペアを作成できます。 この結果は、Hadoop分散ファイルシステムに書き戻されます。

3. YARN(管理レイヤー)

さらにもう1つのリソースナビゲーターは、Hadoopのリソース管理コンポーネントです。 各ノード(スレーブマシンのノードマネージャーとマスターノードのリソースマネージャー)で実行されているバックグラウンドプロセスがあり、リソースの割り当てのために相互に通信します。 リソースマネージャーは、すべてのアプリケーション間のリソースを管理し、ノードマネージャーにリクエストを渡すYARNレイヤーの中心です。

ノードマネージャは、マシンのメモリ、CPU、ディスクなどのリソース使用率を監視し、それをリソースマネージャに伝達します。 すべてのデータノードにインストールされ、データノードでタスクを実行します。

必読:ビッグデータエンジニア向けのトップ10Hadoopツール

結論

Hadoopでのデータ処理のワークフロー全体は、次のように要約できます。–

  • InputSplit ; HDFSに存在するデータをいくつかのデータブロックに論理的に分割します。 データを分割する方法の決定は、 Inputformatによって行われます。
  • データは、RecordReaderによってキーと値のペアに変換されます。 RecordReaderは、バイト指向のデータをレコード指向のデータに変換します。 このデータは、マッパーへの入力として機能します。
  • マッパーは、ユーザー定義関数に他なりませんが、これらのキーと値のペアを処理し、さらに処理するために中間のキーと値のペアを生成します。
  • これらのペアは、マッパーからレデューサーに転送されるデータの量を減らすために、コンバイナーによってローカルに(1つのマッパーの範囲内で)削減されます。
  • Partitionerは、同じキーを持つすべての値が同じレデューサーにマージされ、タスクがレデューサー間で均等に分散されるようにします。
  • 次に、これらの中間のキーと値のペアがレデューサーにシャッフルされ、キーに基づいて並べ替えられます。 この結果は、入力としてレデューサーに送られます。
  • reduce関数は各キーの値を集約し、その結果はRecordWriterを使用してHDFSに保存されます。 HDFSに書き戻す前に、データを書き込む形式はOutputformatによって決定されます。

ビッグデータについて詳しく知りたい場合は、ビッグデータプログラムのソフトウェア開発スペシャライゼーションのPGディプロマをチェックしてください。このプログラムは、働く専門家向けに設計されており、7つ以上のケーススタディとプロジェクトを提供し、14のプログラミング言語とツール、実践的なハンズオンをカバーしています。ワークショップ、トップ企業との400時間以上の厳格な学習と就職支援。

世界のトップ大学からオンラインでソフトウェア開発コース学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。

未来のテクノロジーをマスターする-ビッグデータ

400時間以上の学習。 14言語とツール。 IIIT-B卒業生のステータス。
IIITバンガロアからのビッグデータの高度な証明書プログラム