我已经在本地目录中创建了一个名为“file.txt”的文件,现在我想使用以下方法将其放入 HDFS 中:-
]$ hadoop fs -put file.txt abcd
我收到类似的回复
put: 'abcd': no such file or directory
我从来没有在 Linux 上工作过。请帮帮我 - 如何将文件“file.txt”放入 HDFS?
最佳答案
如果您未在 hadoop 中指定绝对路径(HDFS 或使用的任何其他文件系统),它将预先附加您的用户目录以创建绝对路径。
默认情况下,在 HDFS 中,您的默认文件夹应为/user/用户名。
然后在您的情况下,您尝试创建文件 /user/<user name>/abcd
并将您本地 file.txt
的内容放入其中.
用户名是本地计算机中的操作系统用户。您可以使用 whoami
获取它命令。
问题是 HDFS 中不存在您的用户文件夹,您需要创建它。
顺便说一句,根据hadoop文档,使用HDFS的正确命令是hdfs dfs
相反 hadoop fs
(https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html)。但现在两者都应该可以工作。
然后:
- 如果您不知道本地操作系统中的用户名。打开终端并运行
whoami
命令。 - 执行以下命令,替换您的用户名。
hdfs dfs -mkdir -p /user/<user name>
然后你应该能够执行你的 PUT
命令。
注意:-p
参数是如果/user 文件夹不存在则创建它。
关于hadoop - 无法将文件从本地目录放入 HDFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32749862/