使用hadoop map reduce处理HTML文件

时间:2013-10-11 01:11:37

标签: java html hadoop mapreduce

我在hdfs中有一个包含数千个HTML文件的输入文件夹:

/data/htmls/1/(HTML files)
/data/htmls/2/(HTML files)
.
.
/data/htmls/n/(HTML files)

我有一个java函数,它将HTML文件作为输入并解析它,我想在mapper函数中读取这些HTML文件并将它们作为输入提供给解析器函数。因为输入文件是通过map函数逐行处理的,有没有办法使用HTML文件?

1 个答案:

答案 0 :(得分:2)

我不确定它的效果如何,但Mahout XmlInputFormat是一个不错的XML阅读器。您可以将其调整为适用于HTML。

在配置中,在创建Job对象之前设置以下内容:

conf.set("xmlinput.start", "<tag>");
conf.set("xmlinput.end", "</tag>");

然后在创建作业对象后按以下方式设置输入类:

job.setInputFormatClass(XmlInputFormat.class);

这将选择指定标记内的所有内容作为单个输入字符串。

例如,如果您选择<html> and </html>(或<body> </body>或任何其他匹配的标记对)作为开始和结束标记,您应该将其中的所有内容作为单个记录传递给映射器。

希望这有用。