このHadoopチュートリアルでは 、HDFSフェデレーションの完全な紹介を提供します。このチュートリアルでは、HDFSアーキテクチャ、HDFSの現在のアーキテクチャの制限について説明します。
次に、Hadoopフレームワークでの利点とともにHDFSフェデレーションアーキテクチャについて詳しく説明します。
HDFSフェデレーションとは何ですか?
フェデレーション 既存のHadoopHDFSを強化します 建築。以前のHDFSアーキテクチャでは、クラスター全体に単一の名前空間を使用できます。そのアーキテクチャでは、単一のNameNodeが名前空間を管理します。
NameNodeに障害が発生すると、クラスター全体が使用できなくなります。また、NameNodeが再起動するか、別のマシンに移動するまで、クラスターは使用できなくなります。
この制限を克服するために、HDFSフェデレーションが導入されました。多くのNameNode/NamespacesのサポートをHDFSに追加することで、これを克服します。
現在のHDFSアーキテクチャ
HDFSには、以下に示す2つの主要なレイヤーがあります。
a)名前空間 – このレイヤーは、ファイル、ディレクトリ、およびブロックを管理します 。このレイヤーは、ファイルの作成、削除などの基本的なファイルシステム操作をサポートします。
b)ストレージをブロックする – 2つの部分があります-
- ブロック管理– ブロックの作成、削除などのブロック関連の操作をサポートします。クラスタ内のデータノードを管理し、レプリケーション管理を処理します。
- 物理ストレージ– これにより、ブロックがローカルファイルシステムに保存され、読み取りまたは書き込み操作へのアクセスが提供されます。このリンクをたどって、HDFSデータの読み取りと書き込みの操作を学びます。
この現在のHDFSは、小規模なセットアップで正常に機能します。ただし、大量のデータを処理する必要がある大規模な組織には、いくつかの制限があります。 Hadoopフェデレーションはこれらの制限を処理します。
現在のHDFSアーキテクチャの制限
現在のHDFSアーキテクチャの制限を以下に示します。
1。密結合のブロックストレージと名前空間
名前空間レイヤー およびストレージレイヤー 緊密に結合されています。 namenodeの代替実装が困難になります。また、他のサービスがブロックストレージを使用することを制限します。
2。名前空間のスケーラビリティ
名前空間は、datanodeのようにスケーラブルではありません。 HDFSクラスターでのスケーリングは、データノードを追加することで水平方向に行われます。ただし、既存のクラスターに名前空間を追加することはできません。単一の名前空間で名前空間を垂直方向にスケーリングできます。
3。パフォーマンス
Hadoop全体のパフォーマンスは、ネームノードのスループットに依存します。現在のファイルシステムの操作は、単一のネームノードのスループットに依存します。 NameNodeは現在、60,000の同時タスクをサポートしています。
今後のMapReduce 1,00,000を超える同時タスクをサポートします。そして、これにはもっと多くのネームノードが必要になります。
4。分離
名前空間の分離はありません。したがって、クラスターを使用しているテナント組織間で分離はありません。
HDFSフェデレーションアーキテクチャ
フェデレーションは、多くの独立したNamenode / namespaceを使用して、ネームサービスを水平方向にスケーリングします。 HDFSフェデレーションアーキテクチャでは、下部にデータノードがあります。また、データノードは、すべてのネームノードによってブロックの共通ストレージとして使用されます。
各データノードは、クラスター内のすべてのネームノードに登録されます。これらのデータノードは、ネームノードから定期的にハートビートを送信し、コマンドをブロック、レポート、および処理します。
多くのネームノード(NN1、NN2…、NNn)は、それぞれ多くのネームスペース(NS1、NS2…、NSn)を管理します。各名前空間には独自のブロックプールがあります(NS1にはプール1などがあります)。プール1からのブロックは、データノード1などに保存されます。
1。ブロックプール
ブロックのセットはブロックプールです これは単一の名前空間に属します。 HDFSフェデレーションアーキテクチャにはプールのコレクションがあります。そして、各ブロックは他のブロックから管理されます。
これにより、名前空間でブロックIDを作成できます 別の名前空間との調整なしの新しいブロックの場合。すべてのデータノードは、すべてのブロックプールに存在するデータブロックを格納します。
2。名前空間ボリューム
名前空間とそのブロックプールは、名前空間ボリュームです。 。多くの名前空間ボリュームがHDFSフェデレーションにあります。したがって、各名前空間ボリュームは独立して機能します。 namenodeまたはnamespaceを削除すると、データノードに存在する対応するブロックプールも削除されます。
HDFSフェデレーションのメリット
HDFSフェデレーションは、以前のHDFSアーキテクチャの制限を克服します。したがって、それは以下を提供します:
- 分離– マルチユーザー環境では、単一のネームノードに分離はありません。 HDFSフェデレーションでは、多くのネームノードを使用することで、さまざまなカテゴリのアプリケーションとユーザーをさまざまな名前空間に分離できます。
- 名前空間のスケーラビリティ– フェデレーションでは、多くのネームノードがファイルシステムの名前空間で水平方向にスケールアップします。
- パフォーマンス– ネームノードを追加することで、読み取り/書き込み操作のスループットを向上させることができます。
結論
HDFSフェデレーションの結論として、単一ノードのHDFSアーキテクチャの制限を克服していると言えます。クラスタ全体の以前のHDFSアーキテクチャでは、単一の名前空間のみが許可されていました。フェデレーションは多くの独立したNamenode/namespaceを使用して、ネームサービスを水平方向にスケーリングします。
また、名前空間レイヤーを分離します およびストレージ 層。したがって、分離、スケーラビリティ、およびシンプルな設計を提供します。
Hadoop HDFSのフェデレーションに関連する質問や提案がある場合は、コメントを残してお知らせください。