Hadoop-introduction

提供:Dev Guides
移動先:案内検索

Hadoop-はじめに

Hadoopは、Javaで記述されたApacheオープンソースフレームワークであり、単純なプログラミングモデルを使用して、コンピューターのクラスター間で大規模なデータセットを分散処理できます。 Hadoopフレームワークアプリケーションは、コンピューターのクラスター全体に分散した_storage_と_computation_を提供する環境で動作します。 Hadoopは、単一サーバーから数千台のマシンにスケールアップするように設計されており、それぞれがローカルの計算とストレージを提供します。

Hadoopアーキテクチャ

そのコアには、Hadoopには2つの主要な層があります-

  • 処理/計算レイヤー(MapReduce)、および
  • ストレージ層(Hadoop分散ファイルシステム)。

Hadoopアーキテクチャ

MapReduce

MapReduceは、Googleで考案された分散アプリケーションを作成するための並列プログラミングモデルで、大量のデータ(マルチテラバイトデータセット)を、商用ハードウェアの大規模なクラスター(数千ノード)で、信頼性の高いフォールトトレラントな方法で効率的に処理します。 MapReduceプログラムは、ApacheオープンソースフレームワークであるHadoopで実行されます。

Hadoop分散ファイルシステム

Hadoop分散ファイルシステム(HDFS)は、Googleファイルシステム(GFS)に基づいており、市販のハードウェアで実行するように設計された分散ファイルシステムを提供します。 既存の分散ファイルシステムと多くの類似点があります。 ただし、他の分散ファイルシステムとの違いは重要です。 耐障害性が高く、低コストのハードウェアに展開するように設計されています。 アプリケーションデータへの高スループットアクセスを提供し、大規模なデータセットを持つアプリケーションに適しています。

上記の2つのコアコンポーネントとは別に、Hadoopフレームワークには次の2つのモジュールも含まれています-

  • Hadoop Common -これらは他のHadoopに必要なJavaライブラリとユーティリティです モジュール
  • Hadoop YARN -これは、ジョブスケジューリングとクラスターリソースのフレームワークです。 管理。

Hadoopの仕組み

大規模な処理を処理する重い構成の大きなサーバーを構築するのは非常に費用がかかりますが、代わりに、単一の機能的な分散システムとしてクラスター化されたマシンがデータセットを読み取ることができるように、単一のCPUを備えた多くの市販のコンピューターを結び付けることができます並行して、はるかに高いスループットを提供します。 さらに、1台のハイエンドサーバーよりも安価です。 そのため、これはHadoopを使用した最初の動機付け要因であり、クラスター化された低コストのマシンで実行されます。

Hadoopは、コンピューターのクラスター全体でコードを実行します。 このプロセスには、Hadoopが実行する次のコアタスクが含まれます-

  • データは最初にディレクトリとファイルに分割されます。 ファイルは、128Mと64M(できれば128M)の均一サイズのブロックに分割されます。
  • これらのファイルは、さらに処理するためにさまざまなクラスターノードに分散されます。
  • ローカルファイルシステムの上にあるHDFSは、処理を監督します。
  • ブロックは、ハードウェア障害を処理するために複製されます。
  • コードが正常に実行されたことを確認します。
  • マップとリデュースステージの間で行われるソートの実行。
  • ソートされたデータを特定のコンピューターに送信します。
  • 各ジョブのデバッグログを作成します。

Hadoopの利点

  • Hadoopフレームワークを使用すると、ユーザーは分散システムをすばやく記述してテストできます。 効率的であり、データを自動的に分散し、マシン間で作業し、CPUコアの基本的な並列処理を利用します。
  • Hadoopは、耐障害性と高可用性(FTHA)を提供するためにハードウェアに依存せず、Hadoopライブラリ自体がアプリケーション層で障害を検出して処理するように設計されています。
  • サーバーはクラスターに動的に追加またはクラスターから削除でき、Hadoopは中断することなく動作し続けます。
  • Hadoopのもう1つの大きな利点は、オープンソースであることに加えて、Javaベースであるため、すべてのプラットフォームで互換性があることです。