Hadoop HDFS のファイルとディレクトリのディスク使用状況情報を表示する方法

HadoopBeginner
オンラインで実践に進む

はじめに

このチュートリアルでは、Hadoop HDFS のファイルとディレクトリのディスク使用状況情報を表示する手順を説明します。Hadoop クラスターのストレージ使用率を把握することは、効率的なリソース管理とデータ処理ワークフローの最適化に不可欠です。

HDFS アーキテクチャの理解

Hadoop Distributed File System (HDFS) は、Hadoop アプリケーションで使用される主要なストレージシステムです。HDFS は、分散コンピューティング環境で大量のデータを格納および処理するように設計されています。これは、アプリケーションデータへの高スループットなアクセスを提供し、耐障害性、拡張性、および高可用性を備えています。

HDFS アーキテクチャ

HDFS はマスター - スレーブアーキテクチャに従っており、以下の主要なコンポーネントで構成されています。

NameNode

NameNode は HDFS アーキテクチャのマスターノードです。これは、ファイルシステムの名前空間を管理する責任があり、ディレクトリツリーとそのツリー内のすべてのファイルおよびディレクトリのメタデータを含みます。NameNode はまた、クライアントによるファイルへのアクセスを調整します。

DataNodes

DataNodes は HDFS アーキテクチャのスレーブノードです。これらは、実際のデータブロックを格納し、クライアントからの読み取りおよび書き込み要求を処理する責任があります。DataNodes はまた、NameNode からの指示に基づいて、ブロックの作成、削除、および複製を実行します。

クライアント

クライアントは、HDFS とやり取りするアプリケーションまたはユーザーです。クライアントは、ファイルやディレクトリの作成、削除、および変更などのさまざまな操作を実行できるほか、ファイルシステムへのデータの読み取りと書き込みも行えます。

graph TD
    NameNode -- Metadata --> DataNodes
    Client -- Read/Write --> DataNodes
    DataNodes -- Data Blocks --> NameNode

NameNode はファイルシステムの名前空間とファイルから DataNodes へのマッピングを維持し、DataNodes は実際のデータブロックを格納します。クライアントは NameNode とやり取りしてデータブロックの場所に関する情報を取得し、その後、データの読み取りまたは書き込みのために直接 DataNodes にアクセスします。

HDFS のデータ複製

HDFS は、耐障害性と高可用性を確保するためにデータ複製を提供します。デフォルトでは、HDFS は各データブロックを 3 回複製し、異なる DataNodes にレプリカを格納します。これにより、1 つまたは複数の DataNodes が故障した場合でもデータが利用可能な状態を維持します。

HDFS のブロックサイズ

HDFS は、多くの小さなファイルを管理する際のオーバーヘッドを最小限に抑えるために、通常 128 MB の大きなブロックサイズを使用します。この設計選択は、ほとんどの Hadoop アプリケーションが大量のデータを処理するという前提に基づいており、大きなブロックサイズはディスクシークの回数を減らし、全体的なスループットを向上させるのに役立ちます。

HDFS アーキテクチャとその主要なコンポーネントを理解することで、ファイルシステムの管理ややり取り方法、HDFS のファイルやディレクトリのディスク使用状況情報の確認方法をより深く理解することができます。

HDFS ファイルのディスク使用状況の確認

HDFS ファイルのディスク使用状況を確認するには、hdfs コマンドラインツールを使用できます。hdfs コマンドは、HDFS ファイルシステムとやり取りするためのさまざまなサブコマンドを提供しており、その中には du(ディスク使用状況)サブコマンドも含まれています。

hdfs du コマンドの使用

hdfs du コマンドを使用すると、HDFS ファイルのディスク使用状況情報を取得できます。基本的な構文は次のとおりです。

hdfs du <file_path>

<file_path> を、ディスク使用状況を確認したい HDFS ファイルのパスに置き換えてください。

たとえば、HDFS 内の /user/labex/data.txt ファイルのディスク使用状況を確認するには、次のコマンドを実行できます。

hdfs du /user/labex/data.txt

hdfs du コマンドの出力には、ファイルサイズがバイト単位で表示されます。

1024 /user/labex/data.txt

この例では、/user/labex/data.txt ファイルが HDFS で 1024 バイトのディスク領域を使用しています。

人間が読みやすい形式でのディスク使用状況の表示

ディスク使用状況をより人間が読みやすい形式で表示するには、hdfs du コマンドに -h(人間が読みやすい)オプションを使用できます。

hdfs du -h <file_path>

これにより、ファイルサイズがキロバイト (KB)、メガバイト (MB)、またはギガバイト (GB) などの読みやすい形式で表示されます。

1 KB /user/labex/data.txt

hdfs du コマンドに -h オプションを使用することで、HDFS ファイルのディスク使用状況を簡単に確認し、理解しやすい形式で情報を取得できます。

HDFS ディレクトリのディスク使用状況の確認

HDFS ディレクトリのディスク使用状況を確認するには、hdfs コマンドラインツールと du(ディスク使用状況)サブコマンドを使用できます。hdfs du コマンドを使うと、HDFS ディレクトリとその中身のディスク使用状況情報を取得できます。

ディレクトリに対する hdfs du コマンドの使用

HDFS ディレクトリのディスク使用状況を確認する基本的な構文は次のとおりです。

hdfs du <directory_path>

<directory_path> を、ディスク使用状況を確認したい HDFS ディレクトリのパスに置き換えてください。

たとえば、HDFS 内の /user/labex/data ディレクトリのディスク使用状況を確認するには、次のコマンドを実行できます。

hdfs du /user/labex/data

hdfs du コマンドの出力には、指定されたディレクトリ内の各ファイルとサブディレクトリのディスク使用状況、およびディレクトリ全体の合計ディスク使用状況が表示されます。

1024 /user/labex/data/file1.txt
2048 /user/labex/data/file2.txt
512 /user/labex/data/subdir
3584 /user/labex/data

この例では、/user/labex/data ディレクトリが HDFS で合計 3584 バイトのディスク領域を使用しています。

人間が読みやすい形式でのディスク使用状況の表示

個々のファイルのディスク使用状況を確認する場合と同様に、hdfs du コマンドに -h(人間が読みやすい)オプションを使用すると、ディスク使用状況をより読みやすい形式で表示できます。

hdfs du -h <directory_path>

これにより、ディスク使用状況がキロバイト (KB)、メガバイト (MB)、またはギガバイト (GB) などの形式で表示されます。

1 KB /user/labex/data/file1.txt
2 KB /user/labex/data/file2.txt
512 B /user/labex/data/subdir
3.5 KB /user/labex/data

hdfs du コマンドに -h オプションを使用することで、HDFS ディレクトリのディスク使用状況を簡単に確認し、理解しやすい形式で情報を取得できます。

まとめ

このチュートリアルを終えると、個々の Hadoop HDFS ファイルとディレクトリのディスク使用状況を確認する方法を学ぶことができます。これにより、Hadoop ストレージをより適切に管理し、ビッグデータアプリケーションの最適なパフォーマンスを確保することができます。