1

我正在编写一个抓取页面的 hadoop 作业。我正在使用的库在爬网时使用文件系统来存储爬网数据。我确信必须修改该库以使用 HDFS,因为需要使用一组完全不同的类来与 HDFS 交互,而我正在使用的爬虫库使用 java.io。

但是,当一位同事使用 hdfs://localhost/path/to/storage 作为存储文件夹的路径时,爬虫可以正常工作,并且能够写入文件系统。我试图理解为什么会这样,基于 hadoop 的 jvm 是否有什么不同导致它们将 hdfs:// 前缀路径解析为 HDFS 上的路径?

4

1 回答 1

3

我不知道您使用的是哪种 HDFS 接口。Hadoop 提供了一个通用的文件系统层。如果你没有在你的 hadoop 配置文件中指定 NameNode 地址(在 HADOOP_HOME/conf/core-site.xml 并且属性的名称是“fs.default.name”),你所有的“hadoop fs ...”注释将默认为本地文件系统。因此,如果您不知道 hadoop 配置是什么,将“hdfs://namenode:port/”作为前缀包含在内是个好主意。

于 2012-04-05T14:53:29.640 回答