はじめに
このチュートリアルでは、Hadoopエコシステムの基本コンポーネントであるHadoop分散型ファイルシステム(HDFS)内の特定のファイルを見つけるプロセスを案内します。Hadoop開発者であろうと管理者であろうと、HDFS内のファイルを効果的に検索して見つける方法を理解することは、重要なスキルです。
💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください
このチュートリアルでは、Hadoopエコシステムの基本コンポーネントであるHadoop分散型ファイルシステム(HDFS)内の特定のファイルを見つけるプロセスを案内します。Hadoop開発者であろうと管理者であろうと、HDFS内のファイルを効果的に検索して見つける方法を理解することは、重要なスキルです。
Hadoop分散型ファイルシステム(HDFS)は、Apache Hadoopアプリケーションで使用される主要なデータストレージシステムです。HDFSは、大規模なデータセットに対して信頼性が高く、拡張性があり、フォールトトレラントなストレージを提供するように設計されています。コモディティハードウェア上で動作し、データのバッチ処理に最適化された分散型ファイルシステムです。
HDFSはマスター・スレーブアーキテクチャを採用しており、マスターノードはネームノードと呼ばれ、スレーブノードはデータノードと呼ばれます。ネームノードは、ファイルシステム名前空間の管理、つまりファイルシステムツリーとすべてのファイルとディレクトリのメタデータの管理を担当します。データノードは、ローカルファイルシステム上のデータブロックの保存と取得を担当します。
HDFSは、さまざまなビッグデータアプリケーションで広く使用されており、以下のようなものがあります。
HDFSは、ファイルシステムとやり取りするためのコマンドラインインターフェイス(CLI)を提供しています。hdfs
コマンドは、ディレクトリの作成、ファイルのアップロードとダウンロード、ファイルシステムのコンテンツの一覧表示など、さまざまなHDFS操作を実行するために使用されます。
以下は、hdfs dfs -ls /
コマンドを使用してHDFSルートディレクトリのコンテンツを一覧表示する方法の例です。
$ hdfs dfs -ls /
Found 3 items
drwxr-xr-x - user supergroup 0 2023-04-01 12:34 /user
drwxr-xr-x - user supergroup 0 2023-04-01 12:34 /tmp
drwxr-xr-x - user supergroup 0 2023-04-01 12:34 /apps
このコマンドは、HDFSネームノードに接続し、ディレクトリの一覧を取得し、端末に結果を表示します。
HDFSファイルシステムをナビゲートするには、hdfs dfs
コマンドラインインターフェイスを使用できます。HDFSをナビゲートするための一般的なコマンドをいくつか紹介します。
hdfs dfs -ls [path]
:指定されたディレクトリまたはファイルのコンテンツを一覧表示します。hdfs dfs -cd [path]
:現在の作業ディレクトリを指定されたパスに変更します。hdfs dfs -mkdir [path]
:指定されたパスに新しいディレクトリを作成します。hdfs dfs -put [local_file] [hdfs_path]
:ローカルファイルを指定されたHDFSパスにアップロードします。hdfs dfs -get [hdfs_file] [local_path]
:HDFSからローカルファイルシステムにファイルをダウンロードします。HDFS内のファイルを検索するには、hdfs dfs -find
コマンドを使用できます。このコマンドを使用すると、ファイル名、ファイルサイズ、変更日時など、さまざまな基準に基づいてファイルを検索できます。
以下は、拡張子が.csv
の/user/data
ディレクトリ内のすべてのファイルを検索する方法の例です。
$ hdfs dfs -find /user/data -name '*.csv'
/user/data/file1.csv
/user/data/file2.csv
/user/data/file3.csv
また、hdfs dfs -du
コマンドを使用して、HDFS内のファイルとディレクトリのサイズを取得することもできます。サイズに基づいてファイルを検索する際に役立ちます。
$ hdfs dfs -du /user/data
123456789 /user/data/file1.csv
987654321 /user/data/file2.csv
456789123 /user/data/file3.csv
hdfs dfs -find
コマンドとhdfs dfs -du
コマンドを組み合わせることで、名前とサイズの両方に基づいてHDFS内のファイルを検索できます。
hdfs dfs -find
コマンドは、HDFS内のファイルを検索するために正規表現の使用をサポートしています。特定の形式に一致するファイル名など、複雑なパターンに基づいてファイルを検索する必要がある場合、これは特に役立ちます。
以下は、/user/data
ディレクトリ内の「file_」で始まり、数字の接尾辞を持つすべてのファイルを検索するために正規表現を使用する方法の例です。
$ hdfs dfs -find /user/data -regex '/user/data/file_[0-9]+\.csv'
/user/data/file_1.csv
/user/data/file_2.csv
/user/data/file_3.csv
複数の検索条件を組み合わせて、検索結果を絞り込むことができます。たとえば、名前とサイズの両方に基づいてファイルを検索することができます。
$ hdfs dfs -find /user/data -name '*.csv' -size +1G
/user/data/large_file1.csv
/user/data/large_file2.csv
/user/data/large_file3.csv
このコマンドは、拡張子が.csv
で1ギガバイト以上の/user/data
ディレクトリ内のすべてのファイルを検索します。
コマンドラインインターフェイスに加えて、HDFSはウェブベースのユーザーインターフェイス(UI)も提供しており、ファイルシステムを参照および検索できます。Hadoop Web UIは、通常9870番ポートで実行されるネームノードのウェブインターフェイスにWebブラウザを開いてアクセスできます。
Hadoop Web UIは、グラフィカルなファイルブラウザを提供しており、HDFSファイルシステムをナビゲートし、ファイルとディレクトリのメタデータを表示し、ファイル名、サイズ、変更日時などのさまざまな基準に基づいてファイルを検索できます。
LabExは、HDFSに保存されたデータを管理および分析するのに役立つ強力なプラットフォームです。HDFSファイルシステムをLabExと統合することで、以下のような高度なデータ管理および分析機能を活用できます。
LabExを始めるには、https://www.labex.ioのLabExウェブサイトにアクセスして無料トライアルを申し込むことができます。
このチュートリアルが終了するまでに、HDFSファイルシステムをどのようにナビゲートして検索するかについて包括的な理解を得ることができ、Hadoopベースのアプリケーションとインフラストラクチャで特定のファイルを効率的に見つけることができるようになります。この知識は、Hadoopを引き続き使用し、その強力な分散型ストレージ機能を活用する際に非常に貴重なものになります。