2016-07-26 156 views
0

I created a folder in hdfs。现在,我想从我的本地文件系统的文件上传到tmp的文件夹,例如:Bash - 如何检查文件是否已上传到hdfs?

hdfs dfs -put opt/ibm/labfiles/README.md /user/root/input/tmp 

但我得到的消息:

put: '/user/root/input/tmp': File exists 

我不明白:当我运行测试如果文件存在,我没有看到列出的文件,但该文件夹具有文件大小(4811 bites)。再次,TMP甚至可能不是一个文件夹: enter image description here

  • 我怎么可以看到,如果TMP是一个文件夹?
  • 如何查看README.md文件是否在tmp中,或者如果没有,我怎么能把它放在那里?
  • 从这里启动SparkShell时,我无法访问该文件(输入路径不存在)。为什么?

回答

2

根据该tmp是一个文件。如果它是一个目录,它会显示drw_r__r__,注意d,你没有这个,所以它是一个文件。

你应该已经运行:

hdfs dfs -put opt/ibm/labfiles/README.md /user/root/input/tmp/README.md

+0

为什么要一个使用'Hadoop的fs'而不是'hdfs dfs'? – daemon12

+1

@ daemon12谢谢你的提问,我刚刚检查过它的实际hadoop dfs'已被弃用。我会从答案中删除该部分。 –

0

在情况下,如果tmp目录是已经存在的,你可以直接写信给它省略文件名cataloge:

hdfs dfs -put opt/ibm/labfiles/README.md /user/root/input/tmp/ 

添加额外的“ /'在最后。如果在最后设置“/” - 这将写入目录,否则命令将尝试路径中的最后“/”符号后,创建一个名称的文件

相关问题