我在hdfs中创建了一个文件夹。现在,我尝试将一个文件从本地文件系统上载到tmp文件夹,如下所示:
hdfs dfs -put opt/ibm/labfiles/README.md /user/root/input/tmp
但我得到的信息是:
put: '/user/root/input/tmp': File exists
我不明白的是:当我运行测试时,如果文件在那里,我看不到列出的文件,但文件夹有文件的大小(4811位)。再说一次,tmp甚至可能不是一个文件夹:
如何查看tmp是否为文件夹?
如何查看readme.md文件是否在tmp中,或者如果不在tmp中,如何将其放在tmp中?
从这里启动sparkshell时,我无法访问该文件(输入路径不存在)。为什么?
2条答案
按热度按时间9bfwbjaz1#
据他说
tmp
是一个文件。如果它是一个目录,它会显示drw_r__r__
注意d
,你的没有,所以是个文件。你应该跑:
hdfs dfs -put opt/ibm/labfiles/README.md /user/root/input/tmp/README.md
tv6aics12#
如果tmp是一个已经存在的目录,您可以直接对其进行写入,而忽略文件名:
在末尾添加额外的“/”。如果在最后设置“/”—它将写入目录,否则命令将尝试创建一个名称位于路径中最后一个“/”符号之后的文件