HADOOP の 3 つのコア コンポーネントは、HDFS、MapReduce、YARN です。詳細な紹介: 1. HDFS: 分散ファイル システム。Hadoop クラスターに大量のデータを保存するために使用されます。高いフォールト トレランスを備え、複数のデータ ノードにまたがってデータを保存でき、高スループットのデータ アクセスを提供します; 2. MapReduce: 大規模なデータ セットの並列処理に使用されます。ビッグデータタスクを複数の小さなタスクに分解し、それらを複数のノードで並行して処理し、最終的に結果を要約します; 3. YARN: クラスターリソースの割り当てと管理を担当します。
Hadoop の 3 つのコア コンポーネントは、HDFS (分散ファイル ストレージ)、MapReduce (分散コンピューティング)、YARN (リソース スケジューリング) です。
1. HDFS: HADOOP 分散ファイル システム
HDFS (Hadoop 分散ファイル システム) は、Hadoop プロジェクトの中核となるサブプロジェクトであり、主にストレージを担当します。 HDFS は、マスター/スレーブ アーキテクチャを持つ分散ファイル システムです。 HDFS は従来の階層ファイル編成構造をサポートしており、ユーザーまたはアプリケーションはディレクトリを作成し、これらのディレクトリにファイルを保存できます。ファイル システムの名前空間の階層構造は、ほとんどの既存のファイル システムの階層構造と似ており、ファイル パスを通じてファイルの作成、読み取り、更新、削除を行うことができます。ただし、分散ストレージの性質上、従来のファイル システムとは明らかに異なります。
HDFS の利点:
- 高い耐障害性。 HDFS によってアップロードされたデータは自動的に複数のコピーを保存し、コピーにデータを追加することで耐障害性を高めることができます。レプリカが失われた場合、HDFS は他のマシン上にレプリカを複製するため、その実装について心配する必要はありません。
- ビッグデータ処理に適しています。 HDFS は、ギガバイト、テラバイト、さらにはペタバイトに至るまで、サイズが数百万に及ぶ非常に大きなデータを処理できます。 (1PB=1024TB、1TB=1014GB)
- ストリーミング データ アクセス。 HDFS は、ストリーミング データ アクセス モデルを使用して、非常に大きなファイルを保存し、一度書き込み、何度も読み取ります。つまり、ファイルは一度書き込まれた後は変更できず、追加のみ可能です。これにより、データの一貫性が維持されます。
2. MapReduce: 大規模データ処理
MapReduce は Hadoop のコア コンピューティング フレームワークであり、大規模データに対する並列操作のプログラミングに適しています。セット (1TB を超える) モデルには、Map (マッピング) と Reduce (削減) の 2 つの部分が含まれています。
MapReduce タスクが開始されると、Map 側は HDFS 上のデータを読み取り、そのデータを必要なキーと値のペアのタイプにマップして、Reduce 側に転送します。 Reduce 側は、Map 側からキーと値のペア型のデータを受け取り、異なるキーに従ってグループ化し、同じキーでデータの各グループを処理し、新しいキーと値のペアを取得して HDFS に出力します。これがコアです。 MapReduceのアイデア。
完全な MapReduce プロセスには、データの入力とシャーディング、Map ステージのデータ処理、Reduce ステージのデータ処理、データ出力、およびその他のステージが含まれます:
- 入力データの読み取り。 MapReduce プロセスのデータは、HDFS 分散ファイル システムから読み取られます。ファイルが HDFS にアップロードされる場合、通常は 128MB ごとに複数のデータ ブロックに分割されるため、MapReduce プログラムを実行すると、各データ ブロックごとにマップが生成されますが、ファイルのフラグメント サイズをリセットすることでマップの数を調整することもできます。 . MapReduceを実行すると、設定された分割サイズに従ってファイルが再分割(Split)され、分割サイズのデータブロックがMapに対応します。
- マップステージ。プログラムには、デフォルトのストレージまたはシャードの数によって決定される 1 つ以上のマップがあります。 Map ステージでは、データはキーと値のペアの形式で読み取られます。キーの値は通常、各行の最初の文字とファイルの最初の位置との間のオフセット、つまりその間の文字数です。 、値はこの行のデータ レコードです。要件に従ってキーと値のペアを処理し、それらを新しいキーと値のペアにマッピングし、新しいキーと値のペアを Reduce 側に渡します。
- シャッフル/ソートステージ: このステージは、Map 出力から開始し、Map 出力を入力として Reduce に転送するプロセスを指します。このプロセスでは、まず、同じマップ内の同じキーを持つ出力データを統合して、送信されるデータ量を削減し、統合後にキーに従ってデータをソートします。
- Reduce ステージ: Reduce タスクは複数存在することもでき、Map ステージで設定されたデータ パーティションに従って、1 つのパーティション データが 1 つの Reduce で処理されます。 Reduce タスクごとに、Reduce はさまざまな Map タスクからデータを受け取り、各 Map からのデータは順序どおりに受信されます。 Reduceタスクの各処理は、同じキーを持つすべてのデータをリデュースし、新しいキーと値のペアとしてHDFSに出力します。
3. Yarn: リソース マネージャー
Hadoop の MapReduce アーキテクチャは YARN (Yet Another Resource Negotiator、別のリソース コーディネーター) と呼ばれ、より効率的なリソース管理コアです。
YARN は主に、リソース マネージャー (RM)、ノード マネージャー (NM)、およびアプリケーション マスター (AM) の 3 つのモジュールで構成されます。
- リソース マネージャーは、監視と割り当てを担当します。管理;
- アプリケーション マスターは、各特定のアプリケーションのスケジューリングと調整を担当し、
- ノード マネージャーは各ノードのメンテナンスを担当します。
以上がHADOOP の 3 つのコア コンポーネントは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。