从 hdfs vs 本地目录读取文件
Posted
技术标签:
【中文标题】从 hdfs vs 本地目录读取文件【英文标题】:Reading files from hdfs vs local directory 【发布时间】:2014-02-27 10:44:13 【问题描述】:我是 hadoop 的初学者。我有两个疑问
1) 如何访问存储在 hdfs 中的文件?它与在 java.io 中使用 FileReader 并提供本地路径相同还是其他?
2) 我创建了一个文件夹,我在其中复制了要存储在 hdfs 中的文件和 mapreduce 程序的 jar 文件。当我在任何目录中运行命令时
$HADOOP_HOME/bin/hadoop dfs -ls
它只显示当前目录中的所有文件。那么这是否意味着所有文件都是在我没有明确添加的情况下添加的?
【问题讨论】:
【参考方案1】:是的,几乎一样。读取this post 从HDFS 读取文件。
您应该记住,HDFS 不同于您的本地文件系统。使用hadoop dfs
,您可以访问 HDFS,而不是本地文件系统。因此,hadoop dfs -ls /path/in/HDFS
向您显示/path/in/HDFS
目录的内容,而不是本地目录。这就是为什么它是一样的,无论你从哪里运行它。
如果你想“上传”/“下载”文件到/从 HDFS,你应该使用逗号:
hadoop dfs -copyFromLocal /local/path /path/in/HDFS
和
hadoop dfs -copyToLocal /path/in/HDFS /local/path
,分别。
【讨论】:
in /path/in/HDFS 可以是任何目录还是必须是特定路径? HDFS 中的任何路径。通常它们以/user/hduser/
开头,但这只是一个约定。以上是关于从 hdfs vs 本地目录读取文件的主要内容,如果未能解决你的问题,请参考以下文章