使用hadoop fs--copyfromlocal命令时没有这样的文件或目录错误

5hcedyr0  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(612)

我有一个本地的 VM 那已经 Hortonworks hadoop和 hdfs 安装在上面。我 ssh'ed 从我的机器复制到虚拟机中,现在我尝试通过以下一组命令将文件从本地文件系统复制到hdfs中:

[root@sandbox ~]# sudo -u hdfs hadoop fs -mkdir /folder1/
[root@sandbox ~]# sudo -u hdfs hadoop fs -copyFromLocal /root/folder1/file1.txt /hdfs_folder1/

当我执行它时,我得到如下错误- copyFromLocal:/root/folder1/file1.txt': No such file or directory 我能在你的房间里看到那个文件 /root/folder1/ 目录,但带有 hdfs 命令其抛出以上错误。我也试着 cd/root/folder1/ 然后执行命令,但出现相同的错误。为什么文件就在那里却找不到呢?

6fe3ivhb

6fe3ivhb1#

我在运行hortonworks4节点集群时遇到了同样的问题。如前所述,用户“hdfs”没有根目录的权限。解决方案是将根文件夹中的信息复制到“hdfs”用户可以访问的地方。在标准hortonworks安装中,这是/home/hdfs
作为根用户运行以下命令。。。
mkdir/主页/hdfs/文件夹1
cp/root/folder1/file1.txt/home/hdfs/folder1
现在将用户更改为hdfs并从hdfs用户的可访问目录运行
su hdfs公司
cd/主页/hdfs/文件夹1
现在您可以作为hdfs用户访问文件了
hdfs dfs-put file1.txt/hdfs\u folder1文件

xzabzqsa

xzabzqsa2#

通过跑步 sudo -u hdfs hadoop fs... ,它尝试将文件/root/folder1/file.txt读取为hdfs。
你能做到的。
chmod 755 -R /root . 它将递归地更改目录和文件的权限。但不建议打开根主目录的权限。
然后您可以运行copyfromlocal作为 sudo -u hdfs 将文件从本地文件系统复制到hdfs。
更好的做法是为root用户创建用户空间,并将文件作为root用户直接复制。
sudo -u hdfs hadoop fs -mkdir /user/root sudo -u hdfs hadoop fs -chown root:root /user/root hadoop fs-copyfromlocal

相关问题