web-dev-qa-db-ja.com

HDFS:ファイルを再帰的にリストするにはどうすればよいですか?

Javaを介して、HDFSの特定のパスの下にあるすべてのファイルを(再帰的に)リストするにはどうすればよいですか。 APIを調べて、FileSystem.listFiles(Path、boolean)に気づきましたが、初期化したときに、そのメソッドがFileSystemのインスタンスに存在しないようです。

20
wsb3383

ご使用のバージョンのhadoopのorg.Apache.hadoop.fs.FsShell.ls(FileStatus, FileSystem, boolean, boolean)のソースを確認できます。これはコマンドラインからhadoop fs -lsr pathを実行するときに呼び出されるものです。

14
Chris White

-Rの後にlsコマンドを使用して、ファイル/ディレクトリを再帰的に一覧表示します。

hadoop fs -ls -R Path/Of/File

Lsコマンドの可能な属性は次のとおりです。

-d:ディレクトリはプレーンファイルとしてリストされます。

-h "ファイルのサイズを、バイト数ではなく、人間が読める形式でフォーマットします。

-R "ディレクトリの内容を再帰的に一覧表示します。

7
hadoop-user@hadoop-desk ~/hadoop
$ bin/hadoop fs -lsr /user/someone_else/myfiles

-rw-r--r--   1 hadoop-user supergroup          0 2013-11-26 02:09 /user/someone_else/myfiles/file1.txt

-rw-r--r--   1 hadoop-user supergroup          0 2013-11-26 02:09 /user/someone_else/myfiles/file2.txt

drwxr-xr-x   - hadoop-user supergroup          0 2013-11-26 02:09 /user/someone_else/myfiles/subdir

-rw-r--r--   1 hadoop-user supergroup          0 2013-11-26 02:09 /user/someone_else/myfiles/subdir/anotherFile.txt
0
Lyle Z