Hadoopとは何ですか?導入、 Archi構造、エコシステム、コンポーネント

Hadoop とは何ですか?

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

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

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

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

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

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

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

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の Archi構造

Hadoopの Archi構造
高レベルの Hadoop Archi構造

Hadoop にはマスター/スレーブがあります Archiデータストレージと分散データ処理のための技術 MapReduce および HDFS 方式。

NameNode:

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

DataNode:

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

マスターノード:

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

スレーブノード:

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

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

「Hadoop」の特徴

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

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

•スケーラビリティ

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

• フォールトトレランス

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

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

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

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

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

Hadoop クラスターは、データ センター、ラック、および実際にジョブを実行するノードで構成されます。ここで、データ センターはラックで構成され、ラックはノードで構成されます。プロセスに使用できるネットワーク帯域幅は、プロセスの場所によって異なります。つまり、離れるほど、使用できる帯域幅は少なくなります。

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