Почему DistributedCache искажает мои имена файлов - PullRequest
2 голосов
/ 04 августа 2010

У меня странная проблема: DistributedCache, кажется, изменяет имена моих файлов, использует исходное имя в качестве родительской папки и добавляет файл в качестве дочернего.

т.е. папка \ filename.ext становится папкой \ filename.ext \ filename.ext

Любые идеи, мой код ниже. Спасибо Akintayo

String paramsLocation="/user/fwang/settings/ecgparams.txt";
DistributedCache.addCacheFile(new URI(paramsLocation), firstStageConf);

Path[] paths = DistributedCache.getLocalCacheFiles(job);
 for (Path path: paths) {
  if (path.getName().equals(ecgParamsFilename)) {
   File f = new File(path.toString());
    if (f.exists()) {
     ecgParamsFullFileName = f.getAbsolutePath();
     //this becomes /user/fwang/settings/ecgparams.txt/ecgparams.txt 
    }
  }
 }

Обновление: 16 августа 2010 г. Замена исходного вызова следующим, останавливает искажение имен.

DistributedCache.addCacheArchive(new URI(ecgParamsLocation), firstStageConf);

1 Ответ

0 голосов
/ 12 ноября 2010

Вы уверены, что хотите использовать addCacheArchive()?Существует также addCacheFile() http://hadoop.apache.org/common/docs/r0.15.2/api/org/apache/hadoop/filecache/DistributedCache.html#getCacheFiles%28org.apache.hadoop.conf.Configuration%29.

...