我在解压后的 Hadoop 文件夹中有 2 个目录“dft”和“hdfs”。我尝试将 dft 中的文件(StartUnit.txt)复制到 hdfs 中。相应的命令和异常如下所示
313159@PC213710 ~/hadoop-0.19.1
$ bin/hadoop dfs -copyFromLocal D:/eclipse/cygwin/home/313159/hadoop-0.19.1/hdfs
D:/eclipse/cygwin/home/313159/hadoop-0.19.1/dft/StartUnit.txt
HADOOP_NAMENODE_OPTS=-Dcom.sun.management.jmxremote
HADOOP_SECONDARYNAMENODE_OPTS=-Dcom.sun.management.jmxremote
HADOOP_DATANODE_OPTS=-Dcom.sun.management.jmxremote
HADOOP_BALANCER_OPTS=-Dcom.sun.management.jmxremote
HADOOP_JOBTRACKER_OPTS=-Dcom.sun.management.jmxremote
HADOOP_PID_DIR=-Dcom.sun.management.jmxremote
copyFromLocal: Pathname /D:/eclipse/cygwin/home/313159/hadoop-0.19.1/dft/StartUnit.txt
from D:/eclipse/cygwin/home/313159/hadoop-0.19.1/dft/StartUnit.txt is not a
valid DFS filename.
Usage: java FsShell [-copyFromLocal <localsrc> ... <dst>]
有人可以建议我吗……
答案1
首先必须指定源(本地文件系统),然后指定目标(HDFS)。运行以下命令,它应该可以工作。
bin/hadoop dfs -mkdir /hdfs
bin/hadoop dfs -copyFromLocal D:/eclipse/cygwin/home/313159/hadoop-0.19.1/dft/StartUnit.txt /hdfs/StartUnit.txt
答案2
问题现在已解决。以下是解决方案。
313159@PC213710 ~/hadoop-0.19.1
$ bin/hadoop fs –copyFromLocal testdriver/sample.txt /user/cts/313159/In
此命令将sample.txt
目录 testdriver 中的文件复制到 hdfs 目录中。
如果路径/user/cts/313159/In
,该命令将创建路径并将文件复制到其中。