我是Apache Hadoop的新手,我试图将一个简单的文本文件从本地目录复制到Hadoop上的HDFS,该文件已启动并正在运行。但是,Hadoop安装在D:中,而我的文件位于C:中。
如果我在上述驱动器中的文件中使用cmd中的-put
或copyFromLocal
命令,则不允许这样做。但是,如果我将文本文件放在同一D:驱动器中,则该文件将正确上传到Hadoop,并且可以在Hadoop本地主机上看到。与文件和Hadoop在同一驱动器中一起使用的代码如下:
hadoop fs -put /test.txt /user/testDirectory
如果我的文件在单独的驱动器中,则会收到错误'/test.txt': No such file or directory
。我尝试了/C/pathOfFile/test.txt
的各种变体,但都无济于事,因此,简而言之,我需要知道如何访问另一个目录中的本地文件,尤其是关于-put
命令的情况。对于这个可能是业余问题的帮助,将不胜感激。
答案 0 :(得分:0)
根据您的问题,我假设您已在Windows安装的虚拟机(VM)中安装了Hadoop。如果此假设不正确,请提供更多细节。问题是您的VM将驱动器D:视为本地目录,-put和-copyFromLocal可以在其中查看文件。 C:目前对这些命令不可见。
您需要将驱动器C:挂载到您的VM,以使其文件可在Hadoop本地使用。根据您的VM,有一些指南。为了避免误操作任何Windows安装文件,我建议您谨慎使用。
答案 1 :(得分:0)
如果您当前的cmd会话位于D:\中,那么您的命令将查看该驱动器的根目录
您可以尝试为路径加上前缀
file:/C:/test.txt
否则,先cd
到包含文件的路径,然后再-put test.txt
或-put .\test.txt
注意:除非您将fs.defaultFS实际设置为file:/D:/hdfs