HDFS 分散ファイル システム - 原則とシェル操作

HDFS 分散ファイル システム - 原則とシェル操作

1. HDFS の紹介

   データ量の急速な増加に伴い、従来のファイルはストレージのボトルネック、大きなファイル、時間のかかるアップロードとダウンロードの問題に直面しています。拡張が必要な​​ストレージのボトルネックには、ディスクとメモリを追加する垂直拡張と、サーバーの数を増やす水平拡張の 2 つのソリューションがあります。アップロードとダウンロードの効率の問題に対する解決策は、大きなファイルを複数のデータ ブロックに分割し、データ ブロックを並列に格納することです。分散ファイル システムは、上記のソリューションに基づいています。

1. HDFSの基本コンセプト

HDFS は、数百台の低コスト マシンで実行され、高度なフォールト トレランスを備えた、拡張が容易な分散ファイル システムです。アプリケーション データへの高スループット アクセスを提供し、大量のファイル情報を保存および管理できます。
(1) NameNode(ネームノード)
HDFSクラスタのマスターサーバーをネームノードまたはマスターノードと呼びます。NameNode は主にメタデータの形で管理・保存され、ファイルシステムの操作記録などの情報を保存したり、構成ファイルにバックアップ回数を設定したりします。
(2) DataNode(データノード)
HDFSクラスタのスレーブサーバをデータノードと呼びます。ファイル システムはファイルを複数のデータ ブロックに分割して DataNode に格納するため、DataNode は多くのディスク領域を必要とします。NameNode との通信を常に維持し、データ ブロックの作成や削除などの情報を NameNode マシンに送信する必要があります。
(3) ブロック(データブロック)
データブロックは、ディスクがデータを読み書きする最小単位です。Hadoop2.x版では、デフォルトのブロックサイズは128M、バックアップは3ブロック、各コピーは可能な限り異なるDataNodeに格納され、バックアップによりデータのフォールトトレランスと可用性が提供されます。
(4) ラック (rack)
HD​​FS は、ラック対応戦略​​を使用して、NameNode が各 DataNode が属するラック ID を決定できるようにし、コピー ストレージ戦略を使用して、データの信頼性、可用性、およびネットワーク帯域幅の使用率を向上させます。
(5)MetaData(メタデータ)には
3種類の情報があり、1つはHDFSファイルとディレクトリ情報です。2 つ目は、格納されている関連情報など、ファイルの内容を記録することです。3 つ目は、DataNode の管理のためにすべての DataNode 情報を記録することです。

2. HDFSの特徴

利点:
(1) 高いフォールト トレランス、コピー メカニズム、DataNode ノードは定期的にハートビート信号を NameNode に送信し、DataNode がダウンしていることが判明した場合は、コピーを通じて自動的に復元できます。
(2) ストリーミング データ アクセス
(3) 非常に大きなファイルのサポート
(4) 高いデータ スループットは、一度書き込まれると複数回読み取られ、一度書き込まれると、データの一貫性を確保するために変更できず、追加のみとなります。
(5) 安価なマシンで構築できます。
短所:
(1) 待ち時間が長い
(2) 小さなファイル ストレージには適していない
(3) 同時書き込みには適しておらず、同時ユーザーの書き込み操作をサポートしていません。

2. HDFS アーキテクチャの原則

1. HDFS ストレージ アーキテクチャ

1.hdfs は、それぞれ NameNode と複数の DataNode で構成されるマスター/スレーブ アーキテクチャ (Master/Slave アーキテクチャ) を採用しています; NameNode は、ファイル システムの名前空間とクライアントのファイルへのアクセスの管理を担当し、DataNode は、スレーブノード用 ノード上のデータの保存。
2. NameNode は、FsImage イメージ ファイルと EditLog ログ ファイルをメタデータの形式で維持します. FsImage イメージ ファイルには、ファイル システムの名前空間情報が格納されます.EditLog ログ ファイルには、ファイル システム メタデータの変更が永続的に記録されます.
3. NameNode ストレージ メタデータの増加に伴い、EditLog ログ ファイルがますます大きくなります. クラスターを再起動するとき、NameNode はメタデータ情報を復元し、FsImage イメージ ファイルをロードし、EditLog ログ ファイル レコードの操作を繰り返す必要があります。多くの時間がかかります。したがって、HDFS は、EditLog ログ ファイルを FsImage イメージ ファイルに定期的にマージし、EditLog ログ ファイルのサイズを縮小し、クラスターを再起動する時間を短縮する、セカンダリ NameNode (セカンダリ ノード) を提供します。

2.HDFSファイルの読み書きの原則

クライアント (クライアント) は、HDFS でデータを読み書きします。
(1) HDFS のデータ書き込み操作
クライアントは、ファイルのアップロード要求を開始し、RPC (リモート プロシージャ コール) を提供して NameNode との通信を確立し、ファイルをアップロードします。ファイルを複数のデータ ブロックに分割し、データ ブロックとコピーを順番にアップロードします。
(2) HDFS 読み取りデータ操作
クライアントは、データ ブロックの場所を取得するために NameNode に RPC 要求を開始し、読み取ったすべてのブロック ファイルを最終的なファイルにマージします。

3. HDFSのシェル操作

1. HDFS シェル パラメーター

コマンド パラメータ 機能説明
-ls 指定したパスのディレクトリ構造を表示する
-の 統計ディレクトリとすべてのファイルのサイズ
-mv ファイルを移動する
-cp ファイルをコピーする
-rm ファイル\空のフォルダを削除
-置く ファイルをアップロードする
-猫 ビューファイル
-mkdir フォルダーを作る
-文章 ソースファイルをファイル形式に出力する
-ヘルプ ヘルプ

2.ls コマンド

hadoop fs -ls [パラメータ] [指定パス]
パラメータ:

  • -d : ディレクトリを通常のファイルとして表示します
  • -h: オペレーターが読みやすい単位文字形式
  • -R: すべてのサブディレクトリの情報を再帰的に表示する
    HDFS ルート ディレクトリ以下のすべてのファイルとフォルダを表示する
hadoop fs -ls /

2.mkdir コマンド

パラメータ -p を使用してサブディレクトリを作成します

hadoop fs -p /itcast/hadoop

3.putコマンド

パラメータ:

  • -f : 対象ファイルを上書き
  • -p: アクセスと変更時刻、パーミッションを保持します
    ローカル システム ファイルを HDFS にコピーします
hadoop fs -put -f aa /

おすすめ

転載: blog.csdn.net/tang5615/article/details/125669045