2010-07-02 4 views
1

Я добавляю файл в распределенной кэш Hadoop с использованиемMapReduce Distributed Cache

 Configuration cng=new Configuration(); 
    JobConf conf = new JobConf(cng, Driver.class); 
    DistributedCache.addCacheFile(new Path("DCache/Orders.txt").toUri(), cng); 

где DCache/Orders.txt является файл в HDFS.

При попытке извлечь этот файл из кэша в методе конфиг картографа с помощью:

Path[] cacheFiles=DistributedCache.getLocalCacheFiles(conf); 

Я получаю нулевой указатель. Какая может быть ошибка?

Благодаря

+0

Я знаю, что porblem связано с пути. Как указать путь или URI в addCacheFile? Это абсолютный путь. Если я хочу представить в форме URI, как мне его написать? – user381928

+0

Я использую кластер с одним узлом в окнах. – user381928

ответ

1

DistributedCache не работает в режиме одного узла, он просто возвращает пустой указатель. Или, по крайней мере, это был мой опыт работы с текущей версией.

Я думаю, что URL-адрес должен начинаться с идентификатора hdfs.

http://hadoop.apache.org/common/docs/current/mapred_tutorial.html#DistributedCache

+0

, который должен быть не с, так/user/folder/file, а не hdfs: // user/folder/file – akintayo