Hadoop 使用文件夹结构作为输入
Posted
技术标签:
【中文标题】Hadoop 使用文件夹结构作为输入【英文标题】:Hadoop use folder structure as input 【发布时间】:2012-01-12 17:23:53 【问题描述】:我是一个尝试使用 Hadoop 的初学者,我想虽然我了解一般的 map-reduce 东西,但我一开始似乎错过了一些东西。
基本上,我正在尝试使用 hadoop 解析网站(本地)并获得链接结构(以便稍后我可以计算一些页面排名)。
因此,输入是一个文件夹结构(包含子文件夹和文件),而输出应该是,目前,每个文件都有一个链接到它的文件列表。
我应该使用什么 InputFormat? FileInputFormat 似乎不起作用(遇到文件夹时出现异常 - 说它是一个目录)。真的有这样的InputFormat可以输入这样的文件夹结构吗?
如果不是...我应该以某种方式预处理输入数据吗?意思是我应该将每个 html 文件放到一个目录中并从那里查看吗? 或者,有没有办法编写这样的 InputFormat 来满足我的需要?
【问题讨论】:
【参考方案1】:其实有这样的InputFormat可以输入这样的文件夹结构吗?
所有的 FileInputFormat 都将 Path 作为输入,可以是目录或文件。
FileInputFormat 似乎不起作用(遇到文件夹时出现异常 - 说它是一个目录)。
JIRA 已在某些版本(0.21、0.22、0.23 和主干)中得到修复。 o.a.h.mapred.FileInputFormat 应该实现 addInputPathRecursively 方法。此外,请注意它没有在新 API (o.a.h.mapreduce.FileInputFormat) 中实现。这是来自主干的 o.a.h.mapred.FileInputFormat 类的 code。
顺便说一句,你使用的是什么版本?
基本上,我正在尝试使用 hadoop 解析网站(本地)并获得链接结构(以便稍后我可以计算一些页面排名)。
由于媒体的关注/炒作,Hadoop 正被用于每件事。 Hadoop 原样适用于某些类型的问题。考虑使用 Apache Hama 和 Giraph 进行图形处理。请注意,两者都在孵化器中,文档也很少。
【讨论】:
感谢您的回答。我正在使用 Hadoop 版本 1。我将尝试使用新的 FileInputFormat,看看它是如何工作的。 1.0.x 版是 0.20.* 代码库的品牌重塑,并且没有所需的 API。使用 0.22 版本,因为 0.23 有很多架构更改,并且与 1.0.x 有很大不同。以上是关于Hadoop 使用文件夹结构作为输入的主要内容,如果未能解决你的问题,请参考以下文章