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

推薦する

インターネット時代のキーワード「デジタル著作権」

世界的に有名なレコード会社11社がヤフー中国を提訴し、世界的に有名なレコード会社7社が共同で百度を著...

簡単な説明:新しいウェブサイト運営のいくつかの運用方法

新規ウェブサイトの運営方法は多種多様で、運営方法やプロモーション方法も人それぞれですが、著者はそれら...

インベントリ: AppStore のプロモーション チャネルと効果 (退屈なもの)

概要: これ…どこから始めればいいの~~こんにちは!ため息をつくしかありません。最近は宣伝するのがと...

hawkhost: ボクシング デー、30% オフ、仮想ホスト/VPS/クラウド サーバー/ディストリビューション

Hawkhost はクリスマスと「ボクシング デー」のプロモーションを提供しています。今回は、VPS...

ユーザーの存在意義を真に分析し、今後のウェブサイト構築・運用を導く

みなさんこんにちは、私はXiaoyeです。今日は一日中忙しかったので、ようやく A5 を見て、皆さん...

エッジコンピューティングに移行する前に、IoTエッジ管理に注目しましょう

「走る前に歩くことを学ばなければならない」という古い格言をご存知でしょう。モノのインターネット (I...

BaiduとGoogleの両方にウェブサイトを最適化する方法

今日はウェブサイト最適化の SEO テクニックについてお話しましょう。中国の検索は主に、Baidu ...

オンライン生命保険販売は保護を回避するために財務管理と競争している:配当金を味わうだけでは持続するには不十分かもしれない

最近、淘宝網で売れているのは『童謡三百首』だけではない。国華、合中、紅康の3つの生命保険会社の金融商...

ウェブサイト分析ツールの徹底解説:訪問元統計(パート2)

仮想ツール1. アクセス元の概要訪問者ソースの概要機能はほとんどの Web サイト分析ツールで利用可...

ウェブサイトのコンバージョン率を効果的に向上させる5つの要素

簡単に言えば、従来の中小企業がオンラインマーケティングを行う目的は、インターネットを通じて自社の露出...

ブラック 5 の推奨事項: secureservers-2.86% オフのサーバー/古いフェニックス データ センター

フェニックス (米国西海岸アリゾナ州) 最大のデータ センターであり、米国で最も古いコンピューター ...

最小限の費用で自社のブランド製品を広く知ってもらうにはどうすればよいでしょうか?これを知っておく必要があります...

月給5,000~50,000のこれらのプロジェクトはあなたの将来です「できるだけお金をかけないように...

これらの企業は、ファーウェイのクラウドナレッジコンピューティングソリューションを基盤として、知識の力を解き放ちました。

AIと業界知識の効率的な組み合わせを実現し、インテリジェントなアップグレードを加速することは、現代社...

地域人材ネットワーク育成の核心:地元企業の利益を追求し、大衆基盤と融合すること

地元人材サイトは、地元の人材を結集する情報サイトです。その利点は、地元の人々に人材交流、人材情報、人...