Подтвердить что ты не робот

HDFS: Как вы рекурсивно перечисляете файлы?

Как вы, через Java, перечислите все файлы (рекурсивно) по определенному пути в HDFS. Я прошел через API и заметил FileSystem.listFiles(Path, boolean), но похоже, что этот метод не существует в моем экземпляре FileSystem, когда я его инициализирую.

4b9b3361

Ответ 1

Вы можете посмотреть источник org.apache.hadoop.fs.FsShell.ls(FileStatus, FileSystem, boolean, boolean) для вашей версии hadoop - это то, что вызывается при выполнении hadoop fs -lsr path из командной строки

Ответ 2

Используйте -R, затем команду ls, чтобы рекурсивно отображать файлы/режимы.

hadoop fs -ls -R Path/Of/File

Возможные атрибуты для команды ls:

-d: Каталоги перечислены как простые файлы.

-h "Форматирует размеры файлов в удобном для восприятия человеком формате, а не в количестве байтов.

-R "Рекурсивно перечислить содержимое каталогов.

Ответ 3

[email protected] ~/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