无法读取现有文件-没有这样的文件或目录

5ssjco0h  于 2021-05-30  发布在  Hadoop
关注(0)|答案(5)|浏览(407)

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

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

它给了我以下错误
put:“/root/t1/t11”:没有这样的文件或目录
我确信文件存在。我更改了权限,但仍然没有通过
请帮帮我

pkwftd7m

pkwftd7m1#

希望这些帮助:
$hadoop fs-put localhost:///root/t1/t11 hdfs:///user/amit

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

$hadoop fs-put/根/t1/t11hdfs://your_hadoop_host_name/user/amit
在我的情况下,所有这些工作。
并使用您创建的hadoop用户进行测试。

au9on6nz

au9on6nz2#

以下命令组合起作用。

[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组名
我还不能投票,因为我是新来的,但谢谢你的支持。

vyu0f0g1

vyu0f0g13#

我看到你在复制 root 用户linux主目录('/root')到 amit 用户的hdfs主目录( /user/amit )作为 hadoop 用户。所以,要记住的一点是,根用户的主目录对于其他用户来说是不可读的。
要使其正常工作,您需要将文件复制到linux /tmp 文件夹(通用可读)作为 hadoop 在linux文件系统中,用户无法从根用户的主目录中读取文件(这要求您具有 sudo 访问权限):

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

ztmd8pv54#

尝试使用 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 is 你的 hadoop user name 以及 hadoop group name 分别。

smdnsysy

smdnsysy5#

你可以用 hdfs dfs -copyFromLocal 命令。看看怎么做:
1正在dfs中创建输入文件夹:

hdfs dfs -mkdir /input

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

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

相关问题