2015-03-31 5 views
0

У меня есть требование создать динамический файл на основе содержимого в hasoop job.properties, а затем поместить его в Distributed Cache.hadoop записать файл и положить в распределенный кеш

Когда я создаю файл, я вижу, что он был создан с помощью пути «/ tmp».

Я создаю символическое имя и ссылаюсь на этот файл в кеше. Теперь, когда я пытаюсь прочитать файл в Dis. cache Я не могу получить к нему доступ. Я получаю th ошибка, вызванную: java.io.FileNotFoundException: Запрошенный файл /tmp/myfile6425152127496245866.txt не существует.

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

Мне нужен только файл, который будет доступен только до тех пор, пока работа не будет запущена.

ответ

0

Я не получить смысл

мне нужен только файл будет доступен только до работы работает

Но, когда я практикую использовать распределенную кэш, я используйте следующий путь:

final String NAME_NODE = "hdfs://sandbox.hortonworks.com:8020"; 
job.addCacheFile(new URI(NAME_NODE + "/user/hue/users/users.dat")); 

надеюсь, что это вам поможет.

+0

Спасибо за ваш ответ. Я имел в виду, что я хотел бы, чтобы файл был доступен в кеше только до тех пор, пока работа не будет запущена. Поскольку файл основан на содержании в job.properties, который будет изменяться при каждом запуске задания. Мой запрос заключается в том, что при создании файла динамически абсолютный путь к файлу был «/tmp/myfile6425152127496245866.txt». Но, как только я положил его в кеш, а потом попытаюсь передать его, я получаю '/tmp/myfile6425152127496245866.txt' не существует. Может быть, он ссылается на файл в другой папке, тогда как он был создан где-то еще.? – javauser

+0

Хмм, я думаю, что должна быть какая-то проблема с используемым вами способом. В моем случае, если я опускаю NAME_NODE, я тоже потерплю неудачу. но я не знаю, будет ли такая же ситуация в вашем случае. –

Смежные вопросы