每次我使用-put命令将本地文件复制到hdfs
$ hadoop fs -put file:///root/t1/t11 hdfs:///user/amit
它给了我以下错误
put:'/ root / t1 / t11':没有这样的文件或目录
我确定文件存在。 我更改了权限但仍未通过
请帮帮我
答案 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 name
和hadoop 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/amit
)hadoop
用户。因此,要记住的一件事是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组名
我不能投票,因为我是新人,但谢谢你的支持。