Hadoop2.0クラスターアーキテクチャフェデレーションの概要



Apache Hadoop 2.xは、Hadoop1.xに対する大幅な改善で構成されています。このブログでは、Hadoop2.0クラスターアーキテクチャフェデレーションとそのコンポーネントについて説明しています。

Hadoop2.0クラスターアーキテクチャフェデレーション

前書き:

このブログでは、Hadoop2.0クラスターアーキテクチャフェデレーションについて詳しく説明します。 Apache Hadoopは、Apache Hadoop1.xのリリース以来大きく進化してきました。私の以前のブログからご存知のように、 NameNodeがマスターデーモンとして機能し、DataNodeと呼ばれる他のスレーブノードの管理を担当するマスター/スレーブトポロジに従います。このエコシステムでは、この単一のマスターデーモンまたはNameNodeがボトルネックになり、逆に、企業は高可用性のNameNodeを用意する必要があります。この理由がHDFSフェデレーションアーキテクチャの基盤となり、 HA(高可用性)アーキテクチャ

このブログで取り上げたトピックは次のとおりです。





  • 現在のHDFSアーキテクチャ
  • 現在のHDFSアーキテクチャの制限
  • HDFSフェデレーションアーキテクチャ

現在のHDFSアーキテクチャの概要:

単一名前空間HDFSアーキテクチャ-Hadoop2.0クラスターアーキテクチャフェデレーションの概要-Edureka

上の図でわかるように、現在のHDFSには2つのレイヤーがあります。



  • HDFS名前空間(NS): この層は、ディレクトリ、ファイル、およびブロックの管理を担当します。ファイルまたはファイルディレクトリの作成、削除、変更など、名前空間に関連するすべてのファイルシステム操作を提供します。
  • ストレージレイヤー: これは、2つの基本的なコンポーネントで構成されています。
    1. ブロック管理 :次の操作を実行します。
      • DataNodeのハートビートを定期的にチェックし、クラスターへのDataNodeメンバーシップを管理します。
      • ブロックレポートを管理し、ブロックの場所を維持します。
      • ブロック位置の作成、変更、削除、割り当てなどのブロック操作をサポートします。
      • クラスター全体で一貫したレプリケーション係数を維持します。

2.2。 物理ストレージ :データの保存を担当するDataNodeによって管理され、HDFSに保存されているデータへの読み取り/書き込みアクセスを提供します。

そのため、現在のHDFSアーキテクチャでは、クラスターに単一の名前空間を設定できます。このアーキテクチャでは、単一のNameNodeが名前空間の管理を担当します。このアーキテクチャは非常に便利で、実装も簡単です。また、小規模な本番クラスターのニーズに対応するのに十分な機能を提供します。

現在のHDFSの制限:

前に説明したように、現在のHDFSは、小規模な本番クラスターのニーズとユースケースに十分でした。しかし、YahooやFacebookのような大規模な組織は、HDFSクラスターが指数関数的に成長するにつれていくつかの制限を発見しました。いくつかの制限について簡単に見てみましょう。



  1. 名前空間は スケーラブルではありません DataNodesのように。したがって、単一のNameNodeが処理できるクラスター内のDataNodeの数のみを持つことができます。
  2. 2つのレイヤー、つまり名前空間レイヤーとストレージレイヤーは 固く結ばれた これにより、NameNodeの代替実装が非常に困難になります。
  3. Hadoopシステム全体のパフォーマンスは、 スループット NameNodeの。したがって、すべてのHDFS操作の全体的なパフォーマンスは、NameNodeが特定の時間に処理できるタスクの数によって異なります。
  4. NameNodeは、高速アクセスのために名前空間全体をRAMに格納します。これは、次の点で制限につながります メモリー容量 つまり、単一の名前空間サーバーが処理できる名前空間オブジェクト(ファイルとブロック)の数。
  5. HDFSを展開している組織(ベンダー)の多くは、複数の組織(テナント)がクラスター名前空間を使用できるようにしています。したがって、名前空間の分離はなく、したがって、 分離なし クラスタを使用しているテナント組織間。

HDFSフェデレーションアーキテクチャ:

  • HDFSフェデレーションアーキテクチャでは、ネームサービスの水平方向のスケーラビリティがあります。したがって、フェデレーションされている、つまり互いに独立している複数のNameNodeがあります。
  • DataNodeは、最下部、つまり基盤となるストレージレイヤーに存在します。
  • 各DataNodeは、クラスター内のすべてのNameNodeに登録されます。
  • DataNodeは定期的なハートビートを送信し、レポートをブロックし、NameNodeからのコマンドを処理します。

HDFSフェデレーションアーキテクチャの図解を以下に示します。

先に進む前に、上記のアーキテクチャイメージについて簡単に説明します。

  • 複数の名前空間(NS1、NS2、…、NSn)があり、それぞれがそれぞれのNameNodeによって管理されます。
  • 各名前空間には独自のブロックプールがあります(NS1にはプール1があり、NSkにはプールkなどがあります)。
  • 画像に示されているように、プール1(スカイブルー)のブロックは、DataNode 1、DataNode2などに格納されます。同様に、各ブロックプールのすべてのブロックは、すべてのDataNodeに存在します。

それでは、HDFSフェデレーションアーキテクチャのコンポーネントについて詳しく理解しましょう。

ブロックプール:

ブロックプールは、特定の名前空間に属するブロックのセットに他なりません。したがって、各ブロックプールが互いに独立して管理されるブロックプールのコレクションがあります。各ブロックプールが独立して管理されるこの独立性により、名前空間は、他の名前空間と調整することなく、新しいブロックのブロックIDを作成できます。すべてのブロックプールに存在するデータブロックは、すべてのDataNodeに格納されます。基本的に、ブロックプールは、(単一名前空間アーキテクチャのように)DataNodeに存在するデータブロックを特定の名前空間に対応してグループ化できるように抽象化を提供します。

名前空間ボリューム:

名前空間ボリュームは、そのブロックプールとともに名前空間に他なりません。したがって、HDFSフェデレーションには複数の名前空間ボリュームがあります。これは自己完結型の管理単位です。つまり、各名前空間ボリュームは独立して機能できます。 NameNodeまたは名前空間が削除されると、DataNodeに存在する対応するブロックプールも削除されます。

Hadoop2.0クラスターアーキテクチャフェデレーションのデモ|エドゥレカ

さて、あなたはHDFSフェデレーションアーキテクチャについてかなり良い考えを持っていると思います。これは理論的な概念であり、一般的に実際の生産システムでは使用されません。 HDFSフェデレーションには、展開を困難にする実装上の問題がいくつかあります。したがって、 HA(高可用性)アーキテクチャ 単一障害点の問題を解決するために推奨されます。私はカバーしました HDFSHAアーキテクチャ 私の次のブログで。

Hadoop HDFSフェデレーションアーキテクチャを理解したので、 25万人以上の満足した学習者のネットワークを持つ信頼できるオンライン学習会社であるEdurekaが世界中に広がっています。 EdurekaビッグデータHadoop認定トレーニングコースは、小売、ソーシャルメディア、航空、観光、金融の各ドメインでリアルタイムのユースケースを使用して、学習者がHDFS、Yarn、MapReduce、Pig、Hive、HBase、Oozie、Flume、Sqoopのエキスパートになるのに役立ちます。

質問がありますか?コメント欄にご記入ください。折り返しご連絡いたします。

データサイエンスコースとは