copyFromLocal Hadoop没有这样的文件或目录错误

copyFromLocal Hadoop没有这样的文件或目录错误

我从 Fedora 命令终端得到以下代码:

[root@localhost python_code]# pwd
/root/python_code
[root@localhost python_code]# cd ..
[root@localhost ~]# ls
anaconda-ks.cfg  python_code
[root@localhost ~]# cd /usr/local
[root@localhost local]# ls
bin  games   hadoop-2.6.4.tar.gz  input        lib    libexec  sbin   src
etc  hadoop  include              jdk1.8.0_77  lib64  output   share
[root@localhost local]# cd hadoop
[root@localhost hadoop]# ls
bin  include  libexec      logs        README.txt  share
etc  lib      LICENSE.txt  NOTICE.txt  sbin
[root@localhost hadoop]# pwd
/usr/local/hadoop
[root@localhost hadoop]# bin/hdfs dfs -copyFromLocal /root/python_code/input_data.csv /usr/local/hadoop/input_localuser
copyFromLocal: `/usr/local/hadoop/input_localuser': No such file or directory
[root@localhost hadoop]# ls
bin  include  libexec      logs        README.txt  share
etc  lib      LICENSE.txt  NOTICE.txt  sbin
[root@localhost hadoop]# mkdir input_localuser
[root@localhost hadoop]# ls
bin  include          lib      LICENSE.txt  NOTICE.txt  sbin
etc  input_localuser  libexec  logs         README.txt  share
[root@localhost hadoop]# bin/hdfs dfs -copyFromLocal /root/python_code/input_data.csv /usr/local/hadoop/input_localuser
copyFromLocal: `/usr/local/hadoop/input_localuser': No such file or directory
[root@localhost hadoop]# bin/hdfs dfs -copyFromLocal /root/python_code/input_data.csv home/usr/local/hadoop/input_localuser
copyFromLocal: `home/usr/local/hadoop/input_localuser': No such file or directory
[root@localhost hadoop]# pwd
/usr/local/hadoop
[root@localhost hadoop]# ls
bin  include          lib      LICENSE.txt  NOTICE.txt  sbin
etc  input_localuser  libexec  logs         README.txt  share
[root@localhost hadoop]#

更多代码:

[root@localhost hadoop]# cd ~
[root@localhost ~]# ls
anaconda-ks.cfg  python_code
[root@localhost ~]# cd python_code
[root@localhost python_code]# ls
data_generator.py  input_data.csv  mapper_project.py  reducer_project.py
[root@localhost python_code]#

如上所示,我的python_code目录位于根文件夹中,我试图将文件从该文件夹复制到input_userlocalhadoop 内的目录。

但以下命令会引发错误:

bin/hdfs dfs -copyFromLocal /root/python_code/input_data.csv /usr/local/hadoop/input_localuser
    copyFromLocal: `/usr/local/hadoop/input_localuser': No such file or directory

答案1

首先,您的 Hadoop 命令可能不正确。

dfs -copyFromLocal需要两个参数,一个本地文件(如您所指定),然后是一个 Hadoop URI。不像你给的那样,文件路径。

从 Hadoop 网页来看,

所有 FS shell 命令都采用路径 URI 作为参数。 URI 格式为scheme://authority/path。对于 HDFS,方案是 hdfs,对于本地 FS,方案是 file。方案和权限是可选的。如果未指定,则使用配置中指定的默认方案。 HDFS 文件或目录(例如 /parent/child)可以指定为 hdfs://namenodehost/parent/child 或简单地指定为 /parent/child(假设您的配置设置为指向 hdfs://namenodehost)。

FS shell 中的大多数命令的行为类似于相应的 Unix 命令。每个命令都描述了差异。错误信息发送到 stderr,输出发送到 stdout。

我不知道您的 Hadoop 实例的结构,但您的目标需要是基于该结构的名称,而不仅仅是文件系统。

其次,你没有向我们展示上面的内容/root/python_code/,你确定input_data.csv存在吗?

相关内容