我正在使用Hortonworks Sandbox(不确定是否重要),并试图将csv文件从“ / user / root /”目录复制到“ / user / nyc_taxi /”目录,但是它给了我一个“没有这样的文件”或目录”错误。我非常确定名为“ yellow_tripdata_2016_01.csv”的csv位于“ / user / root /”目录中。
我使用Windows 10,以下是我在终端中编写的命令:
>sudo su - hdfs
>hdfs dfs -mkdir /user/root
>hdfs dfs -mkdir /user/nyc_taxi
>hdfs dfs -chown root:hdfs /user/root
>hdfs dfs -chown root:hdfs /user/nyc_taxi
>exit
>hadoop fs -put yellow_tripdata_2016_01.csv /user/nyc_taxi/
前6个命令没有问题。但是,当我运行最后一个时,终端返回“没有这样的文件或目录”错误。我还尝试通过运行以下命令来指定csv的实际路径:
hadoop fs -put /user/root/yellow_tripdata_2016_01.csv /user/nyc_taxi/
但是仍然显示相同的错误消息。
从下面的屏幕截图可以看出,csv文件显然位于“ / user / root /”目录中。
任何反馈/建议都将不胜感激!
答案 0 :(得分:1)
放置命令在本地文件系统中的 yellow_tripdata_2016_01.csv文件中而不是在HDFS上查找。
但是您的文件位于HDFS
中,这就是您收到该错误的原因。
有关Hadoop -put/-cp/-mv
命令的更多详细信息,请参见this链接。
如果要将HDFS文件复制/移动到另一个HDFS目录,请使用以下命令
将文件复制到另一个hdfs目录:
hadoop fs -cp /user/root/yellow_tripdata_2016_01.csv /user/nyc_taxi/
将文件移动到另一个目录:
hadoop fs -mv /user/root/yellow_tripdata_2016_01.csv /user/nyc_taxi/