建築家必読シリーズ: 分散ファイルシステム HDFS の解釈

建築家必読シリーズ: 分散ファイルシステム HDFS の解釈

Hadoop エコシステムでは、Hadoop 分散ファイル システム (HDFS) が非常に重要なリンクです。ビッグデータ リソース プールを管理し、関連するビッグデータ分析アプリケーションをサポートするための信頼性の高いツールを提供します。分散ストレージの分野でも HDFS は重要な役割を果たしており、システム アーキテクトが理解しなければならない分散ファイル システムの 1 つです。

HDFSの仕組み

HDFS は、コンピューティング ノード間の高速データ転送をサポートします。初期の段階では、大規模なデータセットの並列計算用のプログラミング フレームワークである MapReduce と密接に連携していました。

HDFS はデータを受信すると、情報を個々のブロックに分割し、クラスター内の異なるノードに分散して、効率的な並列処理を可能にします。

さらに、HDFS は高度な耐障害性を備えるように特別に設計されています。 HDFS は、各データ セグメントを複数回複製し、そのレプリカを各ノードに配布して、少なくとも 1 つのレプリカを他のサーバー ラックに配置できます。したがって、クラッシュしたノードのデータはクラスター内の他の場所でも見つかる可能性があります。これにより、データの復元中でも処理を続行できるようになります。

HDFS はマスター/スレーブ アーキテクチャを使用します。元のバージョンでは、各 Hadoop クラスターは NameNode (ファイル システム操作を管理する) とサポートする DataNode (個々のコンピューティング ノード上のデータ ストレージを管理する) で構成されていました。これらの HDFS 要素を組み合わせることで、大規模なデータ セットを持つアプリケーションがサポートされます。

このマスター ノードの「データ ブロック」アーキテクチャは、Google ファイル システム (GFS) と IBM の General Parallel File System (GPFS) からいくつかの設計ガイドラインを採用しています。 GFS は、大量のデータにアクセスする大規模な分散アプリケーション向けのスケーラブルな分散ファイル システムです。安価な汎用ハードウェア上で動作し、フォールトトレランスを提供し、多数のユーザーに全体的に高いパフォーマンスのサービスを提供できます。 GPFS は、クラスター環境向けに特別に設計された、高性能でスケーラブルな並列ファイル システムです。クラスター内の複数のノード間で共有ファイル システム内のファイルへの高速アクセス操作を実装し、安定した障害回復およびフォールト トレランス メカニズムを提供できます。さらに、HDFS は Portable Operating System Interface (POSIX) モデルと互換性がありませんが、いくつかの側面では POSIX 設計スタイルを反映しています。

HDFSアーキテクチャ図 - アプリケーションはクライアントを介してNameNodeおよびDataNodeと対話します

HDFS を使用する理由

HDFS は当初、Yahoo の広告サービスと検索エンジンのニーズを満たすために開発されました。他の Web 指向の企業と同様に、Yahoo は自社のアプリケーションにアクセスするユーザー数の増加に対処しなければならず、それらのユーザーが生成するデータはますます増えていました。その後、Facebook、eBay、Twitter などの企業も、同じニーズに対応するためにビッグデータ分析の基盤として HDFS を使い始めました。

しかし、HDFS はそれ以上の用途に役立ちます。前述の大規模 Web 検索は、データ集約型並列コンピューティングに分類できます。さらに、HDFS は、気象計算などの計算集約型の並列計算アプリケーション シナリオでもよく使用されます。また、3D モデリングやレンダリングなど、データ集約型と計算集約型の混合シナリオでも広く使用されています。 HDFS は、多くのオープンソース データ ウェアハウス (データ レイクと呼ばれることもあります) の中核でもあります。

HDFS は、一般的な安価なマシンで実行できるという重要な機能を備えているため、大規模な導入によく使用されます。また、Web 検索や関連アプリケーションを実行するシステムでは、数百 PB や数千ノードに拡張できる必要がある場合が多いため、システムは簡単に拡張できる必要がありますが、HDFS はまさにその点を備えています。さらに、この規模ではサーバー障害が頻繁に発生するため、HDFS が提供するフォールト トレランスは、この点で非常に価値があります。

HDFSシナリオには適用されません

まず、HDFS は、リアルタイム クエリなど、レイテンシ要件が高いシナリオには適していません。レイテンシの点では、HDFS に大きな利点はありません。第二に、HDFS は多数の小さなファイルの保存をサポートするのも困難です。 Hadoop システムでは、「小さなファイル」は通常、HDFS のブロック サイズ (デフォルトでは 64 MB) よりもはるかに小さいファイルとして定義されます。各ファイルは独自の MetaData メタデータを生成するため、Hadoop はこの情報を Namenode を通じて保存します。小さなファイルが多すぎると、NameNode のメモリを大量に占有しやすくなり、シーク時間が読み取り時間を超え、システムにパフォーマンスのボトルネックが発生します。

さらに、HDFS はマルチユーザー書き込みをサポートしておらず、ランダムなファイル変更を実行することはできません。ファイルの末尾に追加する方法、つまり追加によってファイルを追加する方法のみがサポートされています。 HDFS は、半構造化データと非構造化データの保存に適しています。データが厳密な構造特性を持つ場合、強制的に HDFS を使用することは不適切です。 ***、HDFS は TB および PB レベルのビッグデータ処理に適しており、ファイル数は通常 100 万を超えます。データ量が少ない場合は、HDFS を使用する必要はありません。

HDFS と Hadoop の歴史

ここで、いくつかの重要な時点について簡単に説明します。 2006 年に Apache Hadoop プロジェクトが正式に開始され、HDFS と MapReduce は独立して開発され始めました。このソフトウェアは、さまざまな業界のビッグデータ分析プロジェクトで広く使用され始めています。 2012 年に、HDFS と Hadoop バージョン 1.0 がリリースされました。

2013 年、Hadoop 2.0 にユニバーサル YARN リソース マネージャーが追加され、MapReduce と HDFS が効果的に分離されました。それ以来、Hadoop はさまざまなデータ処理フレームワークとファイルシステムをサポートしてきました。 MapReduce は Apache Spark に置き換えられることが多いですが、HDFS は依然として Hadoop の一般的なファイル形式です。

4 回のアルファ リリースと 1 回のベータ リリースを経て、Apache Hadoop 3.0.0 は、追加の NameNode、消失訂正符号機能、およびより高度なデータ圧縮のサポートを含む HDFS の機能強化を備え、2017 年 12 月に一般公開されました。同時に、LinkedIn のオープンソース Dr. Elephant や Dynamometer パフォーマンス テスト ツールなどの HDFS ツールの進歩により、HDFS はさらなる開発実装をサポートできるようになりました。

<<:  Kafka はどのようにして 1 秒間に 1,500 万件のメッセージを処理するのでしょうか?

>>:  Windows 仮想マシンを一括でチェックおよび修復する方法

推薦する

georgedatacenter: 年間 84 ドル、8G メモリ/4 コア (AMD)/50g NVMe/1Gbps 帯域幅 (トラフィック無制限)

georgedatacenter (2009 年設立) は現在、ロサンゼルス、カンザス、アムステルダ...

ブランドKOLマーケティングメレー

ショートビデオやライブ放送の人気により、新世代のブランドが急速に台頭しています。 2017年から現在...

クラウドコンピューティングの発展の歴史と今後の動向

クラウド コンピューティングは現在、テクノロジーとして求人市場で大きな存在感を示しています。これはほ...

グループ購入モデルをどのように革新すれば、収益性を高め、投資を引き付けることができるでしょうか?

2011 年に急成長を遂げた後、共同購入 Web サイトは 2012 年に重要な時期を迎えました。現...

百度はランキングを決定する要因を知っている

Baidu Knows のプロモーションは、一方ではブランドの影響力を高め、他方では直接トラフィック...

モバイルインターネット著作権戦争: アプリストアはセーフハーバー原則を適用できない

莫言がノーベル賞を受賞した後、莫言の作品をベースにしたアプリが多数登場したが、そのほとんどは海賊版ア...

ウェブサイト最適化の詳細処理プロセス2:ウェブサイトテンプレート

詳細処理の最初の部分であるウェブサイトのコードについてはすでに説明しました。今日は 2 番目のレッス...

etcdの限界を突破しましょう! ByteDanceが自社開発したK8sストレージKubeBrain

背景分散アプリケーション オーケストレーションおよびスケジューリング システムである Kuberne...

オンライン金融詐欺が再浮上:サンシャイン・プライベート・エクイティの「ハッキング」は苦情を申し立てるのが難しい

しばらく沈黙していたオンライン金融管理詐欺が最近再び発生し、一部の投資家が騙されたと報告しているほか...

メッセージングミドルウェアとして Kafka と RabbitMQ のどちらが優れていますか?

高い同時実行性と高いメッセージ スループットを重視する IM のインターネット シナリオでは、MQ ...

オンライン教育の垂直セグメントは2つのプレーヤーの競争状態にある

この記事は「オンライン教育は素晴らしい」シリーズの第 6 回です。生鮮食品の電子商取引は、電子商取引...

中国新経済企業トップ500社の発展報告書

2008 年の国際金融危機以来、世界経済は深刻な不況に見舞われ、成長は鈍化し、将来に対する不確実性が...

有名ブログをレビューした後のまとめと考察

自分のブログを有名にすることは、すべてのブロガーの夢です。ブログが誕生した日から、ブロガーたちはいつ...