我正在尝试使用Hadoop 1.0。我将一个文件从本地系统复制到HDFS时得到Target does not exists
。
我的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
在观察输出后,我们可以看到单词'Target'和'already'之间有两个空格。我认为这两个词之间必须有/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 Installer for ubuntu)安装。
提前致谢!
答案 0 :(得分:3)
put命令中的问题是尾随.
。您需要在HDFS上指定 的完整路径,例如:
hadoop fs -put /host/Users/Shekhar/Desktop/Downloads/201112/20111201.txt /whatever/20111201.txt
如果您放入该文件的目录尚不存在,则需要先创建该目录:
hadoop fs -mkdir /whatever
当您明确指定路径时,您遇到的问题是系统上的问题,/ user / shekar是文件,而不是目录。您可以看到它,因为它的大小为非0。
答案 1 :(得分:1)
-rw-r - r-- 1 shekhar supergroup 6541526 2012-02-21 19:56 / 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中强>
答案 2 :(得分:0)
您必须先制作文件!
hdfs dfs -mkdir /user/hadoop
hdfs dfs -put /home/bigdata/.password /user/hadoop/