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

推薦する

racknerd: 3 月の米国 VPS プロモーション、5 つのデータ センターから選択可能、最低 $14.99/年

racknerd は、3 月にまったく新しい VPS プロモーションを発表しました。年間 15 ドル...

こんな感じで写真で遊ぶこともできます!楽しいオンライン写真編集サイト 25 選

デザイナーはPhotoshopを使うことに慣れていますが、オンラインで写真を加工することを考えたこと...

GKE セキュリティ: クラスターを保護するための 10 の戦略

セキュリティは、構成の複雑さと脆弱性の多さにより、Kubernetes が直面している主な課題の 1...

Kubernetes を使い始める前に知っておくべき 6 つのこと

過去 1 年ほどにわたって、私たちはコンテナ オーケストレーション ツールについて深く理解し、Kub...

Baidu 検索エンジン スパイダー分析

石家荘 SEO トレーニング: Baidu スパイダーが Web サイトにアクセスしたかどうかを確認...

インスタンス共有ウェブサイトは、ブラックリンクにリンクされている場合、ダウングレードされますか?

みなさんこんにちは。ウェブサイトが誤ってブラックリンクにリンクされた場合、それがいかに悲惨なことか、...

ガートナーのエッジコンピューティングの世界的競争状況:アリババクラウドとアマゾンが顧客に近いコンピューティングをリード

[[405672]]最近、権威あるコンサルティング会社ガートナーは、エッジコンピューティング分野にお...

ugvps-1g メモリ/40g ハードディスク/1T トラフィック/12 ドル/半年

ugvps は長い間プロモーションを行っていませんでした。10 月から、手頃な価格と十分なリソースを...

SNSランキング1位のZEPETOは、どうやって「顔ピンチ」を使って見知らぬ人と交流しているのでしょうか?

ZEPETOは、漫画キャラクターのカスタマイズを入り口として利用しています。ユーザーは、作成した高品...

Dedistation - 600g DDOS 保護/4 ドル/1g メモリ/30g ハードディスク/1T トラフィック/英国

dedistation.com、この製品はこれまで見たことがなく、どのようなものかわかりません。最大...

gcore トルコ VPS はどうですか? gcore イスタンブール データセンターの VPS の簡単なレビュー

gcore トルコ VPS はどうですか? Gcore は、中東のトルコに、デフォルトで 200Mb...

2022 年にクラウド コンピューティング ネットワーク市場はどのように発展するでしょうか?

クラウド コンピューティング ネットワークは、パブリック クラウド、プライベート クラウド、またはハ...

新しいサイトが試用期間を迅速に通過し、サンドボックス期間に入るのを回避するにはどうすればよいでしょうか?

今年は昨年よりも多くの新しいウェブサイトが登場していますが、実際に望ましい結果を達成できるウェブサイ...

V.PSはどうですか?タリンデータセンターのクラウドサーバーのレビュー

V.PSはどうですか? V.PSタリンはどうですか? v.ps は、タリン(エストニアの首都タリン)...

草の根ウェブマスターは収益性についてもっと考慮する必要がある

私の友人の多くは北京、上海、広州で働いた後、地元に戻って求人サイトや地域ポータルを立ち上げています。...