Программа чтения Hadoop MapFile не обнаруживает файл в распределенном кэше
Мне нужна помощь относительно читателя файла карты.
Я добавляю файлы в кеш опциями -files
баночка пряжи HadoopProjects.jar rsProject.driver - файлы hdfs://localhost:8020/data/mapFileTestFolder.tar.gz....
вот я это называю
@SuppressWarnings("deprecation")
@Override
protected void setup(Context context) {
try {
Path[] cacheLocalFiles = DistributedCache.getLocalCacheFiles(context.getConfiguration());
logF.info("reducer started setup");
for (Path path:cacheLocalFiles) {
logF("reducer setup " + path.getName().toString());
if (path.getName().toString().contains("mapFileTestFolder.tar.gz")) {
URI mapUri = new File(path.toString() + "/mapFileTestFolder").toURI();
logF.info("depReader init begins URI = " + mapUri.toString());
depReader = new MapFile.Reader(FileSystem.get(context.getConfiguration()),mapUri.toString(), context.getConfiguration());
logF.info("depReader init ends");
}
}
} catch (IOException e) {
e.printStackTrace();
logF.info("depReader init error - " + e);
}
//some other lines
}
Вот что я вижу в логах
2014-03-11 08:31:09,305 ИНФОРМАЦИЯ [main] rsProject.myReducer: initReader init начинается URI = файл:/home/hadoop/Training/hadoop_work/mapred/nodemanager/usercache/hadoop/appcache/application_1394318775013_0079/container_1394318775013_0079_ol_File_00000 tar.gz / mapFileTestFolder
2014-03-11 08: 31: 09,345 INFO [main] rsProject.myReducer: ошибка инициализации depReader - java.io.FileNotFoundException: файл:/home/hadoop/Training/hadoop_work/mapred/nodemanager/usercache/hadoop/appcache/application_1394318775013_0079/container_1394318775013_0079_01_000005/mapFileTestFolder.tar.gz/mapFileTestFolder/ данные не существуют
mapFileTestFolder.tar.gz - это сжатый файл карты (с индексом и данными в нем)
Я предполагаю, что этот файл существует в распределенном кэше, поскольку бегун входит в условие, если совпадает.
Почему это происходит? знак равно
Любая помощь приветствуется
Спасибо
1 ответ
Вопрос решен. Моя глупая ошибка =/ Я должен был использовать команду добавления архива в распределенный кеш, а не в виде файла.