Hadoopとは何ですか?概要、アーキテクチャ、 Ecosシステム、コンポーネント

Hadoop とは何ですか?

Apache Hadoop は、分散コンピューティング環境で実行されるデータ処理アプリケーションの開発に使用されるオープン ソース ソフトウェア フレームワークです。

HADOOP を使用して構築されたアプリケーションは、汎用コンピューターのクラスター全体に分散された大規模なデータ セット上で実行されます。 コモディティコンピュータは安価で広く入手可能です。 これらは主に、低コストでより大きな計算能力を達成するために役立ちます。

パーソナル コンピュータ システムのローカル ファイル システムにデータが存在するのと同様に、Hadoop では、データは分散ファイル システムに存在します。 Hadoop 分散ファイル システム。 処理モデルは以下に基づいています 「データの局所性」 計算ロジックがデータを含むクラスター ノード (サーバー) に送信されるという概念。 この計算ロジックは、Java などの高級言語で書かれたプログラムのコンパイルされたバージョンにすぎません。 このようなプログラムは、Hadoop HDFS に保存されたデータを処理します。

あなたは知っていますか? コンピュータ クラスタは、相互に接続され、単一のシステムとして動作する複数の処理ユニット (ストレージ ディスク + プロセッサ) のセットで構成されます。

Hadoopの EcoSシステムとコンポーネント

以下の図は、Hadoop のさまざまなコンポーネントを示しています ecosシステム-

Hadoopの EcoSシステムとコンポーネント

Apache Hadoop は XNUMX つのサブプロジェクトで構成されています。

  1. Hadoop MapReduce: MapReduce は、Hadoop 上で実行されるアプリケーションを作成するための計算モデルおよびソフトウェア フレームワークです。 これらの MapReduce プログラムは、計算ノードの大規模クラスター上で膨大なデータを並列処理できます。
  2. HDFS (Hadoop分散ファイルシステム): HDFS は、Hadoop アプリケーションのストレージ部分を処理します。 MapReduce アプリケーションは HDFS からのデータを消費します。 HDFS はデータ ブロックの複数のレプリカを作成し、クラスター内の計算ノードに分散します。 この分散により、信頼性が高く、非常に高速な計算が可能になります。

Hadoop は、MapReduce とその分散ファイル システムである HDFS で最もよく知られていますが、この用語は、分散コンピューティングと大規模データ処理の傘下にある一連の関連プロジェクトにも使用されます。 その他の Hadoop 関連プロジェクト: アパッチ 含まれます Hive、HBase、Mahout、Sqoop、Flume、および ZooKeeper。

Hadoop アーキテクチャ

Hadoop アーキテクチャ
高レベルの Hadoop アーキテクチャ

Hadoop には、データ ストレージと分散データ処理のためのマスター/スレーブ アーキテクチャがあります。 MapReduce および HDFS 方式。

NameNode:

NameNode は、名前空間で使用されるすべてのファイルとディレクトリを表しました

DataNode:

DataNode を使用すると、HDFS ノードの状態を管理し、ブロックと対話できるようになります。

マスターノード:

マスター ノードを使用すると、Hadoop MapReduce を使用してデータの並列処理を実行できます。

スレーブノード:

スレーブ ノードは、Hadoop クラスター内の追加のマシンであり、通信を実行するためにデータを保存できるようになります。plex 計算。 さらに、すべてのスレーブ ノードにはタスク トラッカーとデータノードが付属しています。 これにより、プロセスを NameNode および Job Tracker とそれぞれ同期できるようになります。

Hadoop では、マスターまたはスレーブ システムをクラウドまたはオンプレミスにセットアップできます。

「Hadoop」の特徴

• ビッグデータ分析に最適

ビッグ データは本質的に分散され構造化されていない傾向があるため、HADOOP クラスターはビッグ データの分析に最適です。 コンピューティング ノードに流れるのは処理ロジック (実際のデータではない) であるため、消費されるネットワーク帯域幅が少なくなります。 この概念は次のように呼ばれます データの局所性の概念 これは、Hadoop ベースのアプリケーションの効率を向上させるのに役立ちます。

•スケーラビリティ

HADOOP クラスターは、クラスター ノードを追加することで任意の範囲まで簡単に拡張できるため、ビッグ データの増大に対応できます。 また、スケーリングにはアプリケーション ロジックを変更する必要はありません。

• フォールトトレランス

ハドゥープ ecosシステムには、入力データを他のクラスター ノードに複製する機能があります。これにより、クラスター ノードに障害が発生した場合でも、別のクラスター ノードに保存されているデータを使用してデータ処理を続行できます。

Hadoop のネットワーク トポロジ

ネットワークのトポロジ (配置) は、Hadoop クラスターのサイズが大きくなると、Hadoop クラスターのパフォーマンスに影響します。 パフォーマンスに加えて、高可用性と障害の処理にも注意する必要があります。 この Hadoop を実現するために、クラスタ形成にはネットワーク トポロジが利用されます。

Hadoop のネットワーク トポロジ

通常、ネットワーク帯域幅は、ネットワークを形成する際に考慮すべき重要な要素です。 ただし、帯域幅の測定は難しいため、Hadoop ではネットワークをツリーで表現し、そのツリーのノード間の距離 (ホップ数) が Hadoop クラスタの形成における重要な要素と考えられます。 ここで、XNUMX つのノード間の距離は、最も近い共通の祖先までの距離の合計に等しくなります。

Hadoopクラスタはデータセンター、ラック、実際にジョブを実行するノードで構成されます。 ここで、データセンターはラックで構成され、ラックはノードで構成されます。 プロセスが利用できるネットワーク帯域幅は、プロセスの場所によって異なります。 つまり、利用可能な帯域幅は、以下から遠ざかるにつれて少なくなります。

  • 同じノード上のプロセス
  • 同じラック上の異なるノード
  • 同じデータセンターの異なるラック上のノード
  • 異なるデータセンターのノード