リテラシー: 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 がエッジコンピューティングの先駆者となった経緯

推薦する

Google SEO の 12 の重要なポイント

1. サーバーは安定して稼働する必要がある2. 適切なドメイン名を選択し、ウェブサイトのパスとファイ...

register.com ウェブホスティングが 50% オフ

もともとこれを投稿したくなかったのですが、特に良いことがなかったので、内容不足を補うためにここに投稿...

家具の電子商取引Niuwo.comは3ヶ月で閉鎖され、1億元以上の資金が消えたと疑われている

新快報記者ハン・ジェンが報告最近、設立からわずか3か月の家具EC会社Niuwo.comが倒産しそうに...

蘇寧がレッドベイビーを6,600万ドルで買収、独立したブランド運営を維持

9月25日午後、蘇寧ドットコムが業界の合併や買収を行うという噂がついに決着した。蘇寧ドットコムは本日...

500 万件の掲載の裏側: インターネット宝くじの評判への道 - A5 Webmaster Network

【要点】インターネット宝くじ販売会社500 Lottery Network(0、0.00、0.00%...

インタビュアー:Redis の仮想メモリについて教えてください。

[[350704]]著者は、正確にスケジュールされたタスクと遅延キュー処理機能を備えた、高同時実行シ...

数百万のアプリ開発者が実名登録を実施する可能性がある、工業情報省はまもなく説明する

工業情報化部はモバイルアプリケーション市場の整備を進めています。モバイルアプリケーションストアはライ...

Qinzhe Excelサーバーソフトウェアはコスト統計レポートシステムを実現します

2018年最もホットなプロジェクト:テレマーケティングロボットがあなたの参加を待っています近年、経済...

ウェブサイトのランキング最適化レッスン 2: SEO を実行するには? SEO を行うのは人間になるようなものです!

ショートビデオ、セルフメディア、インフルエンサーのためのワンストップサービスSEO をするにはどうす...

サーバーレス アプリケーション決定ガイド

翻訳者 |崔浩企画 |趙雲サーバーレスを適用すると、多くの困難な問題に直面することになります。この記...

オンラインストア情報型ウェブサイトプロモーション体験共有

数年前、ジャック・マーは「電子商取引をやらないと後悔する」と言いましたが、多くの個人ウェブマスターは...

ASO を最適化しなくても、アプリのランキングを向上させることができます。

最近、 ASO を使わずにアプリをうまく宣伝できるだろうか? あるいは、ASO を使用する場合、他の...

alphavps-ブルガリアの格安サーバー、デュアルチャネル L5630/16G メモリ、月額 25 ユーロから

Alphavps は、ブルガリアのホスティング プロバイダーで、特別に低価格の専用サーバーを数台販売...

ブラインドボックスゲームライブ放送ルームルーチン!

数え切れないほどのインターネット詐欺を見抜いてきた経験豊富さを常に誇りにしていた私が、ある日その罠に...

Baidu Index Tool のアップグレードが正式に開始され、新しいカスタムクエリ機能が追加

A5ウェブマスターネットワークは11月26日に次のように報告した。「一定期間の内部テストを経て、Ba...