HDFSとは(Hadoop分散ファイル システム)
摘要: HDFS(Hadoop分散ファイル システム)の概要。この記事では、HDFSの使用方法と例についても説明します。
说明
HDFSとは何ですか? (Hadoop分散ファイル システム)
事実
Hadoop分散ファイル システムの
回答
Hadoop Distributed File System(HDFS)について
Hadoop®クラスターを数百(さらには数千)のノードに拡張する方法を理解するには、HADOOP分散ファイル システム(HDFS)から始める必要があります。Hadoop
クラスター内のデータは、より小さな部分(ブロックと呼ばれる)に分割され、クラスター全体に分散されます。このように、Map関数とReduce関数は、より大きなデータセットの小さなサブセットに対して実行できます。これにより、Big Data処理に必要な拡張性が得られます。
目標は何ですか?
Hadoopの目標は、非常に大規模なクラスターで一般的に使用可能なサーバーを使用することです。各サーバーには、安価な内蔵ディスク ドライブのセットがあります。パフォーマンスを向上させるために、MapReduce
は、処理するデータが格納されているこれらのサーバーにワークロードを割り当てようとします。これはデータの局所性と呼ばれます。(この原則により、Hadoop環境でSAN(ストレージ エリア ネットワーク)またはNAS(ネットワーク接続型ストレージ)を使用することは推奨されません。SANまたはNASを使用したHadoopの導入では、ネットワーク通信のオーバーヘッドが増え、特に大規模なクラスターではパフォーマンスのボトルネックが発生する可能性があります)。少し時間を取って、各マシンに3台の内蔵ディスク ドライブがある1000マシンクラスターについて考えてみましょう。次に、3,000台の安価なドライブ + 1,000台の安価なサーバーで構成されるクラスターの障害率を考慮してください。
既に同じページにアクセスしている可能性があります。Hadoopクラスターで発生するコンポーネントの平均故障時間(MTTF)は、子供のシャツのジッパーに似ています。障害が発生します(実際に必要な場合にのみジッパーが故障しているように見えます)。Hadoopの優れた点は、安価なハードウェアに関連するMTTFレートの現実が実際によく理解されていることです(設計ポイント)。Hadoopの強みの一部は、フォールト トレランスとフォールト補正機能が組み込まれていることです。これはHDFSでも同じです。データはブロックに分割され、これらのブロックのコピーはHadoopクラスター内の他のサーバーに保存されます。つまり、個々のファイルは実際には、クラスター全体の複数のサーバー間でレプリケートされる小さなブロックとして保存されます。
HDFSの例
米国内のすべてのユーザーの電話番号を含むファイルを考えてみてください。Aで始まる姓を持つユーザーは、サーバー1、Bはサーバー2などに保存されます。Hadoopの世界では、この電話帳の一部がクラスター全体に保存され、電話帳全体を再構築するために、プログラムはクラスター内のすべてのサーバーからのブロックを必要とします。コンポーネント障害が発生した場合に可用性を実現するために、HDFSは、これらの小さな部分をデフォルトで2つの追加サーバーにレプリケートします。(この冗長性は、ファイル単位または環境全体で増減できます。たとえば、開発用Hadoopクラスターでは通常、データ冗長性は必要ありません)。この冗長性は複数のメリットを提供します。最も明らかなのは、可用性の向上です。
さらに、この冗長性により、Hadoopクラスターは作業をより小さなチャンクに分割し、クラスター内のすべてのサーバーでこれらのジョブを実行して、拡張性を向上できます。最後に、大規模なデータセットを扱う際に重要なデータの局所性のメリットを得ることができます。これらの重要なメリットについては、この章の後半で詳しく説明します。