2017-01-23 7 views
0

Я бегу простой, получить-мой-ноги-мокрые, карта уменьшить работу в режиме псевдо-распределились так:Где находятся HDFS-каталоги, созданные в Hadoop?

bin/hadoop jar tm.jar TestMap input output 

Он работал отлично в первый раз, но на втором прогоне, я получаю следующее:

Exception in thread "main" org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/user/tom/output already exists 

начальные команды, созданные директории HDFS, используйте команду Hadoop:

$ bin/hdfs dfs -mkdir /user 
$ bin/hdfs dfs -mkdir /user/<username> 

несколько вопросов:

  • Где эти каталоги HDFS создаются и могут быть удалены, если они уже были exsist?
  • Что лучше всего избегать этого?
+0

'Hadoop фс -ls/пользователь/Том/output' или' HDFS ДФС -ls/пользователь/Том/output' – CKing

+0

Спасибо, за это @CKing – Slinky

ответ

1

При выполнении задания MR он ожидает, что каталог ouput не существует.

Первый запуск задания, созданного им, и повторная попытка задания с таким же выходным путем вызвали это исключение.

И с вашего поста, каталог output предоставляется как относительный путь, и в этом случае каталог будет создан внутри каталога HDFS пользователя().

Да, вы можете удалить их, если они уже существуют, и они вам больше не нужны.

hdfs dfs -rm -R output 

Чтобы избежать этого, Вы можете либо удалить каталог и представить свою работу или предоставить другой несуществующий путь в качестве вывода для работы.

Примечание: Например, если предоставленный выходной путь new/mapreduce/output, Hadoop ожидает, что родительский new/mapreduce/ существовать.

+0

Спасибо, (+1) для ясного объяснения @franklinsijo – Slinky

+0

Рад, что это помогло. – franklinsijo

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

  • Нет связанных вопросов^_^