Hadoop分散ファイルシステム(HDFS)とは何ですか? アーキテクチャ、機能、操作
公開: 2020-02-03Hadoop分散ファイルシステムまたはHDFSは、Hadoopのプライマリストレージシステムです。 コモディティハードウェアで実行される大きなデータファイルを保存します。 このストレージシステムは、スケーラブルで、簡単に拡張でき、フォールトトレランスを備えています。
1台の物理マシンに保存されているデータが多すぎると、データの損失を防ぐためにストレージが複数のマシンに分割されます。 HDFSは、そのような分散ファイルストレージシステムの1つであり、多くの物理マシンにわたるストレージ操作を管理します。 これは、このシステムがどのように機能するかをよりよく理解するためのHDFSチュートリアルです。 そのアーキテクチャから始めましょう。
目次
HDFSアーキテクチャ
Hadoop分散ファイルシステムには、次のコンポーネントを備えたマスタースレーブアーキテクチャがあります。
- Namenode :namenodeソフトウェアとLinux /GNUOSの両方を保持するコモディティハードウェアです。 Namenodeソフトウェアは、何の問題も発生することなく、コモディティハードウェア上でスムーズに実行できます。 namenodeをコンポーネントとして持つシステムは、マスターサーバーとして機能します。 クライアントがファイルにアクセスする方法の調整、ファイルシステムの名前空間の管理、ディレクトリとファイルのオープン、クローズ、名前の変更などの操作の実行を含むタスクを実行します。
- データノード:データノードソフトウェアとLinux / GNUOSを含むコモディティハードウェアです。 クラスタ内のノードには、常にデータノードが関連付けられています。 これらのノードは、コモディティハードウェア/システムのストレージを管理する役割を果たします。 データノードが実行するタスクには、クライアントの要求に応じた読み取り/書き込み操作、namenodeの指示に基づくブロックの作成、複製、削除などがあります。
- ブロック:ユーザーデータ全体がHDFSファイルに保存されます。 特定のファイルシステムに属するすべてのファイルは、1つまたは複数のセグメントに分割され、データノードとして保存されます。 ファイルが分割されるファイルセグメントはブロックです。 したがって、HDFSが読み取りまたは書き込みできる最小のデータはブロックです。 最初は、すべてのブロックのサイズは64MBです。 ただし、このサイズは、HDFS構成の変更に応じて増やすことができます。
HDFSアーキテクチャは、HDFSの動作を明確かつ明確に示します。 複数のデータノードで構成されていますが、名前ノードは1つだけです。 メタデータはnamenodeに格納され、2つのタイプのノードの実際のワーカーはdatanodeです。 ノードは、フォールトトレランスとデータの信頼性を向上させるためにデータブロックが格納されているさまざまなラックに編成されています。 クライアントは、ファイルを読み書きするためにnamenodeと対話する必要があります。 クラスタには、ローカルディスクを使用して使用可能なデータを格納するいくつかのデータノードがあります。 Datanodeとnamenodeは永続的に相互に接続しています。 Datanodeは、レプリケーション機能を使用してさまざまなデータノードにデータをレプリケートする役割も果たします。
HDFSでの読み取りおよび書き込み操作は、最小レベル、つまりブロックレベルで行われます。 データレプリケーションの概念は、HDFSの動作の中心です。ブロックのレプリカを作成し、クラスター全体にブロックを分散することで、ノード障害時にデータの高可用性が確保されます。
HDFSオペレーション
HDFSとLinuxファイルシステムは非常によく似ています。 したがって、HDFSを使用すると、ローカルファイルシステムで実行するのに慣れているすべての操作を実行できます。ディレクターの作成、アクセス許可の変更、ファイルのコピーなどを行うことができます。 また、読み取り、書き込み、実行など、いくつかのファイルアクセス権があります。

HDFSでの読み取り操作:HDFSに保存されているファイルを読み取る場合は、namenodeを操作する必要があります。 すでに述べたように、すべてのメタデータはnamenodeに格納されます。 namenodeを操作すると、探しているファイルが保存されているデータノードのアドレスが表示されます。 次に、namenodeによってアドレスが指定されたデータノードと対話し、そこから情報を読み取ることができます。
namenodeにブロックアドレスの共有を要求するファイルシステムのAPIを操作します。 この情報を提供する前に、namenodeは、このデータにアクセスする権利があるかどうかを確認するためのチェックを実行します。 このチェックが完了すると、namenodeはブロックの場所を共有するか、制限のためにアクセスを拒否します。
namenodeによってトークンの形式が与えられます。これは、ファイルにアクセスするためにそれぞれのデータノードに表示する必要があります。 これは、適切な人物がデータにアクセスしていることを確認するためにHDFSが採用しているセキュリティメカニズムの一種です。 データノードでは、トークンを表示した後にのみファイルを読み取ることができます。


書き込み操作:書き込み操作は同じ初期パターンに従います。 データを書き込めるように、namenodeをリクエストする必要があります。 その見返りとして、書き込み操作を実行する必要のあるデータノードの場所が提供されます。 この操作の実行が完了するとすぐに、データノードは他のデータノードに書き込まれたデータのこれらのブロックの複製を開始します。 複製が完了すると、確認応答が届きます。 書き込み操作の認証メカニズムは、読み取り操作と同じです。
HDFSの機能
- 可用性:HDFSの高可用性を備えたファイルシステムはそれほど多くありません。 ファイルシステムは、クラスター全体のデータノード(スレーブ)でブロックレプリカの形式でデータを複製するメカニズムに従います。 このデータにアクセスするには、探している情報のブロックを含むデータノードを操作する必要があります。
- 信頼性:Hadoop分散ファイルシステムは、信頼性の高いデータストレージシステムです。 HDFSに保存できるデータの量はペタバイト単位です。 クラスターを使用してすべてのデータを格納し、ブロックを形成するために分離されます。 次に、クラスターのノードを使用してこれらのブロックを格納します。
- フォールトトレランス:この機能は、通常ほど役に立たない状況でのHDFSの動作強度です。 HDFSは、他のファイルシステムとは異なり、障害を許容します。 将来的にも、予期しない影響からデータを保護します。 すでに示唆したように、データのレプリケーションはさまざまなマシンで実行されます。 これらのマシンのいずれかが動作を停止するとどうなりますか? これは他のシステムでは重大な問題であった可能性がありますが、HDFSでは問題ではありませんでした。 HDFSを使用すると、探しているデータブロックのコピーを持っている他のマシンからデータにアクセスできます。 これは、真のフォールトトレランスと呼ばれます。
- スケーラビリティ:HDFSは、クラスター内のさまざまなノードを使用してデータを格納します。 ストレージ要件が高まった場合は、いつでも先に進んでクラスターを拡張できます。 これは、HDFSに固有のもう1つの機能です。 ファイル配布システムは、クラスターをスケーリングするための2つのメカニズム(水平スケーラビリティと垂直スケーラビリティ)を提供します。
- レプリケーション:レプリケーションは、HDFSを他のストレージシステムと区別する機能です。 レプリケーションは、ノードのクラッシュ、ハードウェア障害などの好ましくないイベントによるデータ損失のインスタンスを最小限に抑えます。 レプリケーションのプロセスは、定期的にさまざまなマシンで実行されます。 したがって、マシンがダウンしてもデータが失われることはありません。 他のマシンを使用してデータを取得できます。
HDFSの目的
- 巨大なデータセットの管理:他のファイル配布システムとは異なり、HDFSには、巨大なデータセットを特徴とするアプリケーションを管理するために必要なアーキテクチャがあります。 問題のデータセットの巨大さに応じて、クラスターごとに数百のノードを持つことができます。
- 障害の検出と回復:障害の検出と適切な処理に関連する機能でHDFSに勝るものは多くありません。 問題のコモディティハードウェアが多数あると、HDFSはコンポーネントの頻繁な障害にさらされます。 ただし、これは不利ではありません。 このようなコモディティハードウェアを扱うすべてのシステムは、障害が発生する可能性があります。 ただし、システムがこれらの障害を迅速かつ自動的に検出し、同時に回復を提供することに長けているかどうかという疑問が残ります。 HDFSは確かに可能です。
- スループットの向上:実際の計算はデータ自体の近くで実行されるため、HDFSはすべてのタスクを効率的に処理します。 これは、巨大なデータセットを扱う場合に特に重要です。 このメカニズムによりスループットが向上し、ネットワークトラフィックの問題が大幅に解消されます。
結論として、HDFSは、ハードウェア障害の影響を感じることなく、信頼性の高い方法で大量のデータを保存できると言えます。 また、フォールトトレラント性が高く、可用性が高く、拡張性が高くなっています。
Hadoopの奥深くを旅し、エキスパートになるには、ビッグデータと分析におけるupGrad&BITSPilaniのPG認定を確認してください。 業界の専門家、熱心なメンター、BITS PilaniAlumniStatusなどと1対1で実践的な経験を積んでください。
ビッグデータについて詳しく知りたい場合は、ビッグデータプログラムのソフトウェア開発スペシャライゼーションのPGディプロマをチェックしてください。このプログラムは、働く専門家向けに設計されており、7つ以上のケーススタディとプロジェクトを提供し、14のプログラミング言語とツール、実践的なハンズオンをカバーしています。ワークショップ、トップ企業との400時間以上の厳格な学習と就職支援。
世界のトップ大学からオンラインでソフトウェア開発コースを学びましょう。 エグゼクティブPGプログラム、高度な証明書プログラム、または修士プログラムを取得して、キャリアを早急に進めましょう。