sql >> データベース >  >> NoSQL >> HBase

HDFSフェデレーションとアーキテクチャの概要

    この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のフェデレーションに関連する質問や提案がある場合は、コメントを残してお知らせください。


    1. ScaleGridがカナダでのMongoDBホスティングサービスを発表

    2. MongoDBでの削除時に参照オブジェクトを自動的に削除します

    3. MongoDBサーバーには、資格情報がなくてもアクセスできます

    4. MongoDB + C#ドライバー+要素の配列をクエリします。各配列要素には、クエリを実行するサブドキュメントが含まれています。