ディレクトリ
HDFSの概要
HDFS(Hadoop分散ファイルシステム)は、主にオペレーティングシステムが大量のデータを格納できないという問題を解決するために使用されるファイルシステムです。したがって、データが複数のオペレーティングシステムに格納されている場合、複数のオペレーティングシステムを管理するにはファイルシステムが必要です。HDFSは分散のみです文書管理情報システムの一種。
HDFSの適用可能なシナリオ:ライトワンスおよびリードアウトのシナリオに適しており、データ分析に適しており、ネットワークディスクアプリケーションには適さないファイル変更をサポートしていません。
HDFSの2つの利点と欠点
2.1利点
- 高いフォールトトレランス:複数のコピーを自動的に保存し、1つのコピーが失われた場合、バックアップコピーを作成する別のマシンを自動的に見つけることができます
- ビッグデータの処理に適しています:GB、TB以上
- 安価なマシンで構築可能
2.2短所
- 低レイテンシのデータアクセスには適していません。一般的な方法ではデータを迅速に保存できません
- 小さなファイルには役に立たない:小さなファイルの処理には適さない
- 同時書き込みはサポートされていません。同じファイルは1つのスレッドのみが書き込むことができ、複数のスレッドが同時に再書き込みすることはできません。
- データの追加のみがサポートされており、データの変更は許可されていません
3つのHDFS構成構造
4つのHDFSファイルブロックサイズ
4.1ブロックとは
HDFSファイルはブロックサイズに従って物理的に保存され、ブロックサイズはhdfs-default.xmlで確認できます。
見える!自分で設定できるのに128mなのはなぜ?この問題について考える人はほとんどいないので、注意深く説明しましょう。まず、HDFS、ストレージ、読み取りの役割を知っておく必要があります。次に、アドレス指定の時間を想定して、このブロックのサイズによって、読み取り速度が最適な速度になるようにする必要があります。10ミリ秒、このファイルを見つけるのにかかる時間は 10ミリ秒です。アドレッシング時間が伝送時間の1%になると、システム全体が最適、つまり10 / 0.01 = 1000ミリ秒= 1秒に達します。現在、市場に出ているほとんどのディスク伝送速度は100メートル/秒です。 、つまり、ブロックサイズは1sに100m / sを掛けたものは100mに等しく、128mは1024の倍数なので、ブロックサイズは128mに設定されます。
4.2まとめ
ブロックのサイズはインタビューの質問としてよく表示されます。要約すると、ブロックのサイズはディスク転送速度に基づいています。
5つのHDFSシェル操作
5.1基本的な文法
HDFSシェル操作とは、クラスターで分散ファイルシステムを操作する方法を指します。基本的な構文が2つである限り、すべて次のようになります。
- bin / hadoop fs固有のコマンド
- bin / hdfs dfs固有のコマンド
5.2共通コマンド
- クラスターを起動します(hdfsに属さない操作コマンド):sbin / start-dfs.shおよびsbin / start-yarn.sh
- ファイルシステムを表示します。bin/ hadoop fs -ls /またはbin / hdfs dfs -ls /
検証はWebポートに基づいて正しく行われます。後者の一部はスクリーンショットによって検証されなくなります。これは面倒で読み取り効率に影響します
- HDFSにフォルダーを作成します:bin / hadoop fs -mkdir -p / wangleijia / wangleiまたはbin / hdfs dfs -mkdir -p / wangleijia1 / wanglei1
- ローカルシステム(Linux)からHDFSにカットアンドペーストします:bin / hadoop fs -moveFromLocal ./wanglei.txt / user / wangleiまたはbin / hdfs dfs -moveFromLocal ./wanglei.txt / user / wanglei
- 既存のファイルの最後にファイルを追加します。このファイルは、ローカルファイルbin / hadoop fs -appendToFile wanglei.txt /user/wanglei/wanglei.txtまたはbin / hdfs dfs -appendToFile wanglei.txt /user/wanglei/wanglei.txtです。
- HDFS上のファイルの内容を表示:bin / hadoop fs -cat /wangleijia/wanglei.txtまたはbin / hdfs dfs -cat /wangleijia/wanglei.txt
- ファイルのグループを変更し、実行権限を読み書きします。所有者:bin / hadoop fs -chgrp -R newgroup / wangleijiaまたはbin / hdfs dfs -chgrp -R newgroup / wangleijia; bin / hadoop fs -chmod 777 / wangleijia / wanglei .txtまたはbin / hdfs dfs -chmod 777 /wangleijia/wanglei.txt; bin / hadoop fs -chown wanglei:wanglei /wangleijia/wanglei.txtまたはbin / hdfs dfs -chown wanglei:wanglei /wangleijia/wanglei.txt;
- ローカルオペレーティングシステムからHDFSにコピー:bin / hadoop fs -copyFromLocal ./haidai.txt / wangleijiaまたはbin / hdfs dfs -copyFromLocal ./haidai.txt / wangleijia
- HDFSからローカルにダウンロード:bin / hadoop fs -copyToLocal /wangleijia/wanglei.txt ./またはbin / hdfs dfs -copyToLocal /wangleijia/wanglei.txt ./
- HDFS上の相互コピー:bin / hadoop fs -cp /wangleijia/NOTICE.txt / wangleijia1 /またはbin / hdfs dfs -cp /wangleijia/NOTICE.txt / wangleijia1 /
- HDFS上のモバイル:bin / hadoop fs -mv /wangleijia/NOTICE.txt / wangleijia1 /またはbin / hdfs dfs -mv /wangleijia/NOTICE.txt / wangleijia1 /
- HDFSからローカルにダウンロード:copyToLocalと同じ; bin / hadoop fs -get /wangleijia/wanglei.txt ./またはbin / hdfs dfs -get /wangleijia/wanglei.txt ./
- ローカルからHDFSへのアップロード:copyFromLocalと同じ; bin / hadoop fs -put ./haidai.txt / wangleijiaまたはbin / hdfs dfs -put ./haidai.txt / wangleijia
- 削除:bin / hadoop fs -rm -R / wangleijiaまたはbin / hdfs dfs -rm -R / wangleijia1
- コピー数を設定します。bin/ hadoop fs -setrep 5 / wangleijiaまたはbin / hdfs dfs -setrep 5 / wangleijia
ここで設定されたコピーの数は、NameNodeのメタデータにのみ記録されます。本当に多くのコピーがあるかどうかは、DataNodeの数によって異なります。現在、デバイスは3つしかなく、コピーは3つまでなので、ノードの数が10に増えた場合にのみ、コピーの数は10に達することがあります。
上記は一般的に使用されているHDFSシェル操作であり、Linuxに精通している人にはまだよく理解されています。-Rを大文字にする必要があるなど、一部の命令はパラメーターに従いますが、それ以外の場合は間違っていますが、問題ではなく、エラーは明らかです。