我有一个本地虚拟机,其上安装了Hortonworks Hadoop和hdfs.我从我的机器进入虚拟机,现在我试图通过以下命令集将文件从我的本地文件系统复制到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’:没有这样的文件或目录
我可以在/ root / folder1 /目录中看到该文件,但是使用hdfs命令会抛出上面的错误.我也尝试cd到/ root / folder1 /然后执行命令,但同样的错误来了.为什么文件在那里找不到?
最佳答案 通过运行sudo -u hdfs hadoop fs …,它尝试将文件/root/folder1/file.txt读取为hdfs.
你可以这样做.
>运行chmod 755 -R / root.它将以递归方式更改目录和文件的权限.但是不建议在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