当我这样做时
$ ls
我找到一个名为file_name.csv
的文件然而,当我尝试做
时$ hdfs dfs -put /home/user_name/file_name.csv tempfolder
(/ home / user_name /是file_name.csv所在的位置,而tempfolder是我在hdfs中创建的临时文件夹)。它说
“`/home/user_name/file_name.csv':没有这样的文件或目录”
即使它在那里。这背后有原因还是有人知道如何修复它?
注意:如果这是相关的,当我调用 hdfs dfs ... 时,它就是一个sudo。所以
sudoing "hdfs dfs -put /home/user_name/file_name.csv tempfolder"
答案 0 :(得分:0)
可能会遇到shell扩展。尝试到目的地的完整路径:
hdfs dfs -put /home/user_name/file_name.csv /tempfolder
答案 1 :(得分:0)
首先,'/home/user_name/file_name.csv': No such file or directory"
是本地计算机的错误。如果您看到包含ls
的文件,请执行$PWD/file_name.csv
Sudo与这个问题关系不大。
之间存在差异
hdfs:///tempfolder
hdfs:///user/username/tempfolder
如果您sudo
,则您将命令作为其他用户帐户运行,而不是您自己。
的错误应该相同
hdfs dfs -ls /user/username/tempfolder
如果您不提供绝对路径,则需要用户目录。换句话说,hdfs命令总是假设您默认写入HDFS用户文件夹。
虽然tempfolder是我在hdfs中创建的临时文件夹
如何创造?
使用sudo?因为那时HDFS中的用户帐户将不存在该目录。
您创建了/tempfolder
吗?前导斜杠非常重要,需要在put命令中维护
如果该HDFS文件夹尚不存在,则尾部斜杠也很重要 - 否则,您将CSV复制到没有名为tempfolder
的扩展名的文件