Целевая ошибка уже существует в команде put put - PullRequest
1 голос
/ 21 февраля 2012

Я пробую свои силы на Hadoop 1.0.Я получаю Target does not exists при копировании одного файла из локальной системы в HDFS.

Моя команда hadoop и ее вывод выглядят следующим образом:

shekhar@ubuntu:/host/Shekhar/Softwares/hadoop-1.0.0/bin$ hadoop dfs -put /host/Users/Shekhar/Desktop/Downloads/201112/20111201.txt .
Warning: $HADOOP_HOME is deprecated.

put: Target  already exists

После просмотра вывода мы можем видеть, чтомежду словом «Цель» и «уже» есть два пробела.Я думаю, что между этими двумя словами должно быть что-то вроде /user/${user}.Если я явно указываю путь назначения как /user/shekhar, то получаю следующую ошибку:

shekhar@ubuntu:/host/Shekhar/Softwares/hadoop-1.0.0/bin$ hadoop dfs -put /host/Users/Shekhar/Desktop/Downloads/201112/20111201.txt /user/shekhar/data.txt
Warning: $HADOOP_HOME is deprecated.

put: java.io.FileNotFoundException: Parent path is not a directory: /user/shekhar

Вывод команды ls выглядит следующим образом:

shekhar@ubuntu:/host/Shekhar/Softwares/hadoop-1.0.0/bin$ hadoop dfs -lsr /
Warning: $HADOOP_HOME is deprecated.

drwxr-xr-x   - shekhar supergroup          0 2012-02-21 19:56 /tmp
drwxr-xr-x   - shekhar supergroup          0 2012-02-21 19:56 /tmp/hadoop-shekhar
drwxr-xr-x   - shekhar supergroup          0 2012-02-21 19:56 /tmp/hadoop-shekhar/mapred
drwx------   - shekhar supergroup          0 2012-02-21 19:56 /tmp/hadoop-shekhar/mapred/system
-rw-------   1 shekhar supergroup          4 2012-02-21 19:56 /tmp/hadoop-shekhar/mapred/system/jobtracker.info
drwxr-xr-x   - shekhar supergroup          0 2012-02-21 19:56 /user
-rw-r--r--   1 shekhar supergroup    6541526 2012-02-21 19:56 /user/shekhar

Пожалуйста, помогите мне в копировании файлав HDFS.Если вам нужна какая-либо другая информация, пожалуйста, дайте мне знать.

Я пытаюсь это сделать в Ubuntu, который устанавливается с помощью WUBI (установщик Windows для Ubuntu).

Заранее спасибо!

Ответы [ 3 ]

3 голосов
/ 21 февраля 2012

Проблема в команде put - трейлинг .. Вам необходимо указать полный путь в HDFS , куда вы хотите поместить файл, например:

hadoop fs -put /host/Users/Shekhar/Desktop/Downloads/201112/20111201.txt /whatever/20111201.txt

Если каталог, в который вы помещаете файл, еще не существует, вам нужно сначала его создать:

hadoop fs -mkdir /whatever

Проблема, с которой вы сталкиваетесь при явном указании пути, заключается в том, что в вашей системе / user / shekar представляет собой файл , а не каталог . Вы можете видеть это, потому что он имеет размер, отличный от 0.

1 голос
/ 21 февраля 2012

-rw-r - r-- 1 шехарская супергруппа 6541526 2012-02-21 19:56 / пользователь / шехар

shekhar @ ubuntu: /host/Shekhar/Softwares/hadoop-1.0.0/bin$ hadoop dfs -put /host/Users/Shekhar/Desktop/Downloads/201112/20111201.txt / user / shekhar / data.txt

0 голосов
/ 07 ноября 2018

Вы должны сделать файл первым!

hdfs dfs -mkdir /user/hadoop hdfs dfs -put /home/bigdata/.password /user/hadoop/

...