从hdfs和本地目录中读取文件

时间:2014-02-27 10:44:13

标签: hadoop mapreduce hdfs

我是hadoop的初学者。我有两个疑惑

1)如何访问存储在hdfs中的文件?是否与在java.io中使用FileReader并提供本地路径相同或者是其他东西?

2)我创建了一个文件夹,我已经复制了要存储在hdfs中的文件和mapreduce程序的jar文件。当我在任何目录中运行命令时

${HADOOP_HOME}/bin/hadoop dfs -ls

它只显示当前目录中的所有文件。那么这是否意味着所有文件都被添加而没有我明确添加它?

1 个答案:

答案 0 :(得分:3)

  1. 是的,它几乎一样。阅读this post以从HDFS读取文件。

  2. 您应该记住,HDFS与您的本地文件系统不同。使用hadoop dfs,您可以访问HDFS,而不是本地文件系统。因此,hadoop dfs -ls /path/in/HDFS向您显示/path/in/HDFS目录的内容,而不是本地目录的内容。这就是为什么它是相同的,无论你从哪里运行它。

  3. 如果您要向HDFS“上传”/“下载”文件,您应该使用逗号:

    hadoop dfs -copyFromLocal /local/path /path/in/HDFS

    分别为

    hadoop dfs -copyToLocal /path/in/HDFS /local/path

相关问题