无法读取现有文件 - 没有此类文件或目录

时间:2015-04-08 08:40:50

标签: hadoop

每次我使用-put命令将本地文件复制到hdfs

$ hadoop fs -put file:///root/t1/t11 hdfs:///user/amit

它给了我以下错误

  

put:'/ root / t1 / t11':没有这样的文件或目录

我确定文件存在。 我更改了权限但仍未通过

请帮帮我

5 个答案:

答案 0 :(得分:1)

尝试使用put以外的其他文件夹中的/root命令。在终端(作为hadoop用户)执行此操作:

sudo mkdir -p /usr/local/test
sudo cp /root/t1/t11 /usr/local/test/t11
sudo chown hadoop:hadoop /usr/local/test/t11
hadoop fs -mkdir -p /user/amit
hadoop fs -put /usr/local/test/t11 /user/amit/t11

sudo chown hadoop:hadoop /usr/local/test/t11中,hadoop:hadoop分别是hadoop user namehadoop group name

答案 1 :(得分:1)

希望这些有所帮助:

$ hadoop fs -put localhost:/// root / t1 / t11 hdfs:/// user / amit

$ hadoop fs -put / root / t1 / t11 hdfs:/// user / amit

$ hadoop fs -put / root / t1 / t11 hdfs:// your_hadoop_host_name / user / amit

就我而言,所有这些都有效。

并使用您创建的hadoop用户进行测试。

答案 2 :(得分:0)

您可以使用hdfs dfs -copyFromLocal命令。看看怎么做:

1.在DFS中创建输入文件夹:

hdfs dfs -mkdir /input

2。将目录从本地磁盘复制到HDFS中新创建的“input”目录:

hdfs dfs -copyFromLocal /usr/local/test/t11 /input

答案 3 :(得分:0)

我看到您正在将文件从root用户linux主目录('/ root')复制到amit用户的hdfs主目录(/user/amithadoop用户。因此,要记住的一件事是root用户的主目录对其他用户是不可读的。

要使其工作,您需要将文件复制到linux /tmp文件夹(这是普遍可读的),因为hadoop用户无法从linux文件中的root用户主目录读取文件系统(这要求您拥有sudo访问权限):

sudo cp /root/t1/t11 /tmp
hadoop fs -put /tmp/t11 /user/amit

答案 4 :(得分:0)

以下命令组合有效。

[root@amit ~]# mkdir /testing
[root@amit ~]# cp /root/t1/t11 /testing
[root@amit ~]# sudo chown hdfs:hadoop /testing
[root@amit ~]# sudo chown hdfs:hadoop /testing/t11
[root@amit ~]# sudo -u hdfs hadoop fs -put /testing/t11 hdfs:///user/amit

hdfs是我的hadoop用户名

hadoop是我的hadoop组名

我不能投票,因为我是新人,但谢谢你的支持。