Ответ 1
Вы можете посмотреть источник org.apache.hadoop.fs.FsShell.ls(FileStatus, FileSystem, boolean, boolean)
для вашей версии hadoop - это то, что вызывается при выполнении hadoop fs -lsr path
из командной строки
Как вы, через Java, перечислите все файлы (рекурсивно) по определенному пути в HDFS. Я прошел через API и заметил FileSystem.listFiles(Path, boolean), но похоже, что этот метод не существует в моем экземпляре FileSystem, когда я его инициализирую.
Вы можете посмотреть источник org.apache.hadoop.fs.FsShell.ls(FileStatus, FileSystem, boolean, boolean)
для вашей версии hadoop - это то, что вызывается при выполнении hadoop fs -lsr path
из командной строки
Используйте -R, затем команду ls, чтобы рекурсивно отображать файлы/режимы.
hadoop fs -ls -R Path/Of/File
Возможные атрибуты для команды ls:
-d: Каталоги перечислены как простые файлы.
-h "Форматирует размеры файлов в удобном для восприятия человеком формате, а не в количестве байтов.
-R "Рекурсивно перечислить содержимое каталогов.
[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