У меня есть каталог с файлами, каталогами, подкаталогами и т. Д. Как я могу получить список абсолютных путей ко всем файлам и каталогам с помощью API Apache Hadoop?Как получить абсолютные пути файлов в каталоге?
ответ
Использование HDFS API:
package org.myorg.hdfsdemo;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
public class HdfsDemo {
public static void main(String[] args) throws IOException {
Configuration conf = new Configuration();
conf.addResource(new Path("/Users/miqbal1/hadoop-eco/hadoop-1.1.2/conf/core-site.xml"));
conf.addResource(new Path("/Users/miqbal1/hadoop-eco/hadoop-1.1.2/conf/hdfs-site.xml"));
FileSystem fs = FileSystem.get(conf);
System.out.println("Enter the directory name :");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Path path = new Path(br.readLine());
displayDirectoryContents(fs, path);
}
private static void displayDirectoryContents(FileSystem fs, Path rootDir) {
// TODO Auto-generated method stub
try {
FileStatus[] status = fs.listStatus(rootDir);
for (FileStatus file : status) {
if (file.isDir()) {
System.out.println("This is a directory:" + file.getPath());
displayDirectoryContents(fs, file.getPath());
} else {
System.out.println("This is a file:" + file.getPath());
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
Writer рекурсивная функция, которая берет файл и проверяет, является ли его каталог или нет, если каталог содержит список всех файлов в нем и в цикле for проверяет, является ли файл каталогом, а затем рекурсивно вызывает или просто возвращает список файлы.
Что-то вроде этого ниже, но не совсем то же самое (здесь я возвращаюсь только .java файлы)
private static List<File> recursiveDir(File file) {
if (!file.isDirectory()) {
// System.out.println("[" + file.getName() + "] is not a valid directory");
return null;
}
List<File> returnList = new ArrayList<File>();
File[] files = file.listFiles();
for (File f : files) {
if (!f.isDirectory()) {
if (f.getName().endsWith("java")) {
returnList.add(f);
}
} else {
returnList.addAll(recursiveDir(f));
}
}
return returnList;
}
Спасибо, но я в поиске, как сделать это с помощью Apache Hadoop. Но теперь я знаю решение. –
с HDFS можно использовать Hadoop фс -ЛРС.
Или 'hdfs dfs ls -R' - но это не дает нам Абсолютный Путь, не так ли? –
Вопрос об API, а не клиенте CLI. –
- 1. Получить абсолютные пути для всех файлов в каталоге
- 2. Как получить абсолютные пути в файловой системе Hadoop?
- 3. Ant задачи копирования считает абсолютные пути в локальном каталоге
- 4. получить все абсолютные пути файлов в данной папке
- 5. Как получить абсолютные пути конечных каталогов?
- 6. Абсолютные пути в PhoneGap
- 7. Как получить абсолютные пути после сопоставления vpath в make?
- 8. ConfigObj и абсолютные пути
- 9. Как получить абсолютные пути в файлах сгенерированных cmake
- 10. Абсолютные пути в проекте CakePHP
- 11. Листинг абсолютные пути файлов в терминале ж/более 255 символов
- 12. Как получить абсолютные пути от FileDialog из разных папок
- 13. Как Concrete5 организует абсолютные пути?
- 14. Как исключить абсолютные пути для tar?
- 15. Абсолютные пути узлов-окон
- 16. PEAR и абсолютные пути
- 17. Grunt.js устанавливает абсолютные пути
- 18. Получить абсолютные координаты пути SVG с Javascript
- 19. Управление SVN в проекте, использующем абсолютные пути
- 20. Список файлов в каталоге без пути
- 21. Относительные пути или абсолютные?
- 22. Относительный путь и абсолютные пути
- 23. Sox абсолютные пути и трубопроводы
- 24. lcov абсолютные или относительные пути
- 25. Абсолютные пути на cakePHP 1.3
- 26. Как включить абсолютные пути в LaTeX
- 27. Как использовать абсолютные пути в флеш-приложении?
- 28. Как предотвратить абсолютные пути в динамическом компоновщике
- 29. Как использовать абсолютные пути в ODataModel SAPUI5?
- 30. Получить количество файлов в каталоге
@Peter Shipilo: одна небольшая коррекция, не забудьте закрыть экземпляр FileSystem. – Tariq
Спасибо, что сильно изменились. Я попробую этот код позже. –
И вам нужны правильные зависимости для hadoop-hdfs, среди прочих. – Mahdi