リテラシー: Hadoop 分散ファイル システム (HDFS) の基本概念を説明します。

リテラシー: Hadoop 分散ファイル システム (HDFS) の基本概念を説明します。

Hadoop と Spark をどのように比較しても、Spark エコシステムがどれほど成熟し完成していても、その基礎となるレイヤーは最終的には HDFS に基づいています。結局のところ、これは最も成熟した分散基盤ファイルシステムであり、完全に新しいファイルシステムの開発に労力を費やそうとする企業はほとんどありません。

この記事では、Hadoop 分散ファイル システム (HDFS) の基本概念と、HDFS を管理するための上位 10 個の Hadoop シェル コマンドについて説明します。 HDFS は、Apache Hadoop フレームワークの基盤となるファイル システムです。これは、数千の汎用ハードウェアにまたがる分散ストレージ フレームワークです。ファイル システムは、フォールト トレランス、高スループット、ストリーミング データ アクセス、および高い信頼性を提供します。 HDFS アーキテクチャは、大量のデータを保存し、迅速に処理するのに適しています。 HDFS は Apache エコシステムの一部です。

その前に、まず Apache Hadoop フレームワークについて理解しましょう。このフレームワークには主に次のモジュールが含まれています。

  • Hadoop Common – 他の Hadoop モジュールに必要なライブラリとユーティリティが含まれています。
  • HDFS - 一般的なマシンにデータを保存するための分散ファイル システムで、クラスター内で非常に高い総帯域幅を提供します。
  • Hadoop YARN - クラスター上のコンピューティング リソースを管理し、それらを使用してユーザー アプリケーションのスケジュールを設定するリソース管理プラットフォーム。
  • Hadoop MapReduce – 大規模データ処理のためのプログラミング モデル。

Hadoop のすべてのモジュールは、ハードウェア障害 (個々のマシンまたはラック全体) は明らかであり、ソフトウェア アプリケーションの Hadoop フレームワークによって自動的に処理されるという基本的な前提に基づいて設計されています。 Apache Hadoop の HDFS コンポーネントは、もともと Google の MapReduce と Google File System (GFS) から派生したものです。

HDFS は、Hadoop アプリケーションで使用される主要な分散ストレージです。 HDFS クラスターは主に NameNode と DataNode で構成されます。 NameNode はファイル システムのメタデータを管理し、DataNode は実際のデータを保存するために使用されます。

HDFS アーキテクチャ図は、NameNode、DataNode、およびクライアント間の基本的な相互作用を説明しています。クライアント コンポーネントは NameNode を呼び出してファイルのメタデータまたは変更を取得し、クライアントは DataNode を直接使用して実際のファイル I/O 操作を実行します。 HDFS には、ユーザーにとって興味深いと思われる注目すべき機能がいくつかあります。

低コストの汎用ハードウェアを使用した分散ストレージおよび処理に最適です。 Hadoop はスケーラブルで、フォールト トレラントであり、簡単に拡張できます。 MapReduce は、そのシンプルさと多数の分散アプリケーションへの適用性で知られています。 HDFS は高度に構成可能であり、デフォルトの構成でほとんどのアプリケーションのニーズを満たすのに十分です。通常、デフォルト構成を調整する必要があるのは、非常に大規模なクラスターの場合のみです。

  1. Hadoop は Java プラットフォーム上で記述されており、ほぼすべての主要プラットフォームでサポートされています。
  2. Hadoop は、HDFS と通信するためのシェルおよびシェルのようなコマンドをサポートしています。
  3. NameNode と DataNode には Web サーバーが組み込まれているため、クラスターの現在のステータスを簡単に確認できます。
  4. HDFS では新しい機能やアップデートが頻繁に実装されます。次のリストは、HDFS で利用可能な機能のサブセットです。

ファイルの権限と認証。

ラック認識:タスクのスケジュール設定やストレージの割り当て時にノードの物理的な場所を考慮するのに役立ちます。

セーフモード:主にメンテナンスに使用されるモードを管理します。

fsck:これは、ファイル システムの健全性を診断し、不足しているファイルまたはブロックを見つけるために使用されるユーティリティです。

fetchdt:これは DelegationToken を取得してローカル システム ファイルに保存するためのユーティリティです。

リバランサー:これは、データがデータノード間で不均等に分散されている場合にクラスターのバランスをとるために使用されるツールです。

アップグレードとロールバック:ソフトウェアをアップグレードした後、事故を防ぐためにアップグレード前の状態にロールバックできます。

SecondaryNameNode:このノードは名前空間のチェックポイントを実行し、HDFS 変更ログを含むファイルのサイズを NameNode の特定の制限内に維持するのに役立ちます。

チェックポイント ノード:このノードは、名前空間のチェックポイントを実行し、HDFS に加えられた変更を含む NameNode に保存されるログのサイズを最小限に抑えるのに役立ちます。また、セカンダリ ネームノードが以前に担っていた役割または機能も置き換えます。代わりに、NameNode では、システムに利用可能な (登録済みの) バックアップ ノードがない限り、複数のノードをチェックポイントとして機能させることができます。

バックアップ ノード:チェックポイント ノードの拡張として定義できます。チェックポイントに加えて、NameNode からの編集ストリームを受信するためにも使用されます。したがって、アクティブな NameNode および名前空間の状態と常に同期された名前空間の独自のメモリ内コピーが維持され、一度に 1 つのバックアップ ノードのみが NameNode に登録されます。

HDFSの設計目標

Hadoop は、それぞれが安価な内部ディスク ドライブのセットを備えた非常に大規模なクラスター内の共通サーバーを使用するように設計されています。より良いパフォーマンスを実現するために、MapReduce API は、処理対象のデータが格納されているサーバー間でワークロードを分散しようとします。これをデータ ローカリティと呼びます。したがって、Hadoop 環境ではストレージ エリア ネットワーク (SAN) またはネットワーク接続ストレージ (NAS) を使用することはお勧めしません。 SAN または NAS を使用した Hadoop の展開では、特にクラスターのサイズが大きい場合に、追加のネットワーク通信オーバーヘッドによってパフォーマンスのボトルネックが発生する可能性があります。

現在、1,000 台のマシンのクラスターがあり、各マシンに 3 つの内部ディスク ドライブがあるとします。そこで、3,000 台の安価なドライブと 1,000 台の安価なサーバーで構成されるクラスターの障害率を考えてみましょう。すごいことになるよ!幸いなことに、安価なハードウェアに関連する MTTF 障害率は実際に十分に理解され、受け入れられているため、Hadoop は非常に耐性があります。 Hadoop にはフォールト トレランスと障害補償機能が組み込まれており、HDFS にも同様に機能が組み込まれています。これは、データがブロックに分割され、これらのブロックのコピーが Hadoop クラスター内の他のサーバーに保存されるためです。わかりやすく言うと、1 つのファイルは実際には小さなチャンクとして保存され、ファイルへのアクセスを高速化するためにクラスター内の複数のサーバーに複製されていると言えます。

応用シナリオを検討することができます。ある地域の住民全員の電話番号を保存し、姓が A で始まる人をサーバー 1 に保存し、姓が B で始まる人をサーバー 2 に保存するなどする必要があるとします。 Hadoop 環境では、この電話帳のさまざまな部分がクラスター全体に分散されて保存されます。電話帳全体を再構築するには、プログラムはクラスター内のすべてのサーバーのブロックにアクセスする必要があります。より高い可用性を実現するために、HDFS はデフォルトで小さなデータを 2 つの追加サーバーに複製します。ここでは冗長性の概念が関係していますが、冗長性は障害を回避し、フォールト トレラントなソリューションを提供するためにサポートされています。この冗長性は、ファイルごと、または環境全体で増減できます。この冗長性には多くの利点がありますが、最も明らかな利点はデータの可用性が高いことです。とりわけ、データの冗長性により、Hadoop クラスターは作業を小さなチャンクに分割し、クラスター内のすべてのサーバーで小さなジョブを実行して、スケーラビリティを向上させることができます。最後に、エンドユーザーとして、大規模なデータセットを扱う際に重要なデータローカリティのメリットが得られます。

HDFS を管理するための Hadoop シェル コマンド トップ 10

以下は、シェル コマンドを使用して Hadoop HDFS を管理するための上位 10 の基本的な操作です。これらの操作は、HDFS クラスター上のファイルを管理するのに非常に便利です。テスト目的で、Cloudera や Hortonworks などの VM を使用してこのコマンドを呼び出すことも、疑似分散クラスター設定のためにこのコマンドを呼び出すこともできます。

1. 指定されたパスにHDFSのディレクトリを作成する

2. ディレクトリの内容を一覧表示する

3. HDFSでファイルをアップロードおよびダウンロードする

  1. アップロード:  
  2. hadoop fs -put:

ローカルファイルシステムからHadoopデータファイルシステムに単一のsrcファイルまたは複数のsrcファイルをコピーします。

ファイルをローカルファイルシステムにコピー/ダウンロードする

  1. ダウンロード:  
  2. hadoop fs -get:

4. ファイルの内容を表示する

Unix の cat コマンドと同じです:

5. ソースからターゲットにファイルをコピーする

このコマンドでは複数のソースも許可されますが、その場合、宛先はディレクトリである必要があります。

6. ローカルファイルシステムからHDFSにファイルをコピーする

put コマンドに似ていますが、ソースはローカル ファイル参照に制限されます。

7. ファイルをソースから宛先に移動する

注意: ファイル システム間でのファイルの移動は許可されていません。

8. HDFS内のファイルまたはディレクトリを削除する

引数として指定されたファイルを削除し、ディレクトリが空の場合にのみディレクトリを削除します。

9. ファイルの最後の数行を表示する

Unixのtailコマンドに似ている

10. ファイルの合計長さを表示する

結論は

HDFS は Apache Hadoop エコシステムの重要なコンポーネントの 1 つであることがわかりました。ローカル ファイル システムと比較すると、HDFS は確かに非常に強力です。したがって、すべてのビッグデータ アプリケーションはデータ ストレージに HDFS を使用します。そのため、ビッグデータ担当者は HDFS を理解する必要があります。

<<:  コレクション | 「分散トランザクション」をこれほどシンプルかつ明確に説明した人は初めてだ

>>:  データエコノミー: Vertiv がエッジコンピューティングの先駆者となった経緯

推薦する

VMware、自動化を推進し、IT の近代化を加速する Anywhere Workspace イノベーションを発表

ハイブリッド ワークフォースの変化するニーズに直面している組織は、あらゆるアプリ、デバイス、場所から...

A5 Yuehuai: SEO最適化に有益な仮想ホストの選択について

ウェブサイトに適切なキーワード、ドメイン名、仮想ホストを選択すると、その後の SEO 最適化に非常に...

チャンネルAPPプロモーション運用詳細

概要: Android チャネル操作では何に注意すべきでしょうか? 1. チャンネルのゲームプレイと...

Hostus 香港 VPS レビュー/Softlayer データセンター/1000M 帯域幅

hostusは、2018年7月28日に、中国内外で初めて、hostus香港VPSに関するニュースを発...

ウェブサイトの商業化は合理的でなければなりません。純粋な商業化はウェブサイト開発に役立ちません(パート 2)

数日前、私は「ウェブサイトの商業化は合理的でなければならない、純粋な商業化はウェブサイトの発展に悪影...

目を覚ましてください、テンセントとネットイースがゲーム業界を支配しており、誰も3位になるチャンスはありません

現在人気の「 Honor of Kings 」は、当初から批判され、嘲笑されてきましたが、それでもこ...

Baiduに登録された日からウェブサイトのSEOを見てみましょう

Baidu の登録日に問題があると聞いていましたが、実際に見たことはありませんでした。このようなこと...

企業におけるマルチクラウド導入の秘訣

クラウド コンピューティングの採用が拡大するにつれ、企業がすべてのアプリケーションとデータを単一のク...

マイクロデータセンターはどのようにしてエッジコンピューティングを実現するのでしょうか?

エッジ コンピューティングは、機械学習、人工知能、IoT、ディープラーニングなどのさまざまな組み込み...

「Baidu 2012 Doomsday」から見る成功したイベントマーケティング

どの業界にもある程度の飽和度があります。業界の飽和度を超えると、現在の SEO のように業界は非常に...

#BlackFridayPresale# cloudcone: ロサンゼルス VPS、年間 16.5 ドル、2G メモリ/1 コア/50g ハードドライブ/3T トラフィック/1Gbps 帯域幅

cloudcone は、毎年恒例のブラックフライデーのプレセールイベントを事前にリリースし始めました...

私を騙したサービスプロバイダー - 私のウェブサイトがブロックされた理由がようやく分かりました

ちょうど今日、Mecheng が Baidu Spider をブロックするという誤った操作によって、...

美麗碩の「サイドアップ」はアリババとテンセントの生態戦争を反映している。左がアリババ、右がテンセント

[美麗碩がテンセント陣営を選んだという事実は、ショッピングガイドサイトに対するタオバオの曖昧な姿勢を...