使用Hadoop fs --copyFromLocal命令时,没有此类文件或目录错误

时间:2016-01-16 06:53:49

标签: hadoop hdfs hortonworks-data-platform

我有一个本地VM,其上安装了Hortonworks Hadoop和hdfs。我ssh'ed从我的机器进入VM,现在我试图通过以下命令将文件从我的本地文件系统复制到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/,然后执行命令,但同样的错误来了。为什么文件在那里找不到?

2 个答案:

答案 0 :(得分:2)

通过运行sudo -u hdfs hadoop fs...,它会尝试将文件/root/folder1/file.txt读取为hdfs。

你可以这样做。

  1. 运行chmod 755 -R /root。它将以递归方式更改目录和文件的权限。但是不建议在root主目录上打开权限。
  2. 然后您可以将copyFromLocal作为sudo -u hdfs运行,以将文件从本地文件系统复制到hdfs。
  3. 更好的做法是直接为root用户创建用户空间并以root用户身份复制文件。

    1. sudo -u hdfs hadoop fs -mkdir /user/root
    2. sudo -u hdfs hadoop fs -chown root:root /user/root
    3. hadoop fs -copyFromLocal

答案 1 :(得分:0)

我在运行Hortonworks 4节点群集时遇到了同样的问题。如上所述,用户" hdfs"没有权限到根目录。解决方案是将信息从根文件夹复制到" hdfs"用户可以访问。在标准的Hortonworks安装中,这是/ home / hdfs

以root身份运行以下内容......

  

mkdir / home / hdfs / folder1

     

cp /root/folder1/file1.txt / home / hdfs / folder1

现在将用户更改为hdfs并从hdfs USER的可访问目录

运行
  

su hdfs

     

cd / home / hdfs / folder1

现在您可以像hdfs用户那样访问文件

  

hdfs dfs -put file1.txt / hdfs_folder1