Hadoop fs -cp,说文件不存在?

时间:2014-03-19 10:31:56

标签: hadoop hdfs hadoop2

文件new.txt可以肯定;我不知道为什么当我试图进入hdfs目录时,它说文件不存在。

deepak@deepak:/$ cd $HOME/fs
deepak@deepak:~/fs$ ls
new.txt
deepak@deepak:~/fs$ cat new.txt
an apple a day keeps the doctor away
deepak@deepak:~/fs$ hadoop fs -cp $HOME/fs/new.txt $HOME/hdfs
cp: File does not exist: /home/deepak/fs/new.txt
deepak@deepak:~/fs$ 

PS:我已经创建了一个名为hdfs的目录:

deepak@deepak:~/fs$ hadoop fs -mkdir $HOME/hdfs
mkdir: cannot create directory /home/deepak/hdfs: File exists

2 个答案:

答案 0 :(得分:9)

当您希望将数据从一个HDFS位置复制到另一个HDFS位置时,使用

cp 。但是您打算将数据从本地FS复制到HDFS。要将数据从本地FS复制到HDFS,您可以使用 put copyFromLocal

如果您真的希望使用 cp 进行此操作,则必须指定完整路径以及方案。说,

hadoop fs -cp file:///Users/miqbal1/date.txt /

cp 默认情况下假设该方案为 hdfs://

但是当你有 copyFromLocal 时,为什么要这样做?

HTH

答案 1 :(得分:2)

要将文件从本地复制到hdfs,应使用以下命令

hadoop fs -copyFromLocal $HOME/fs/new.txt $HOME/hdfs

对于cat hdfs文件,您可以使用以下命令

hadoop fs -cat $HOME/hdfsnew.txt