![如何使用unix命令将文件移动到hadoop中的hdfs](https://linux22.com/image/1383183/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8unix%E5%91%BD%E4%BB%A4%E5%B0%86%E6%96%87%E4%BB%B6%E7%A7%BB%E5%8A%A8%E5%88%B0hadoop%E4%B8%AD%E7%9A%84hdfs.png)
我在解压后的 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
,该命令将创建路径并将文件复制到其中。