6

我正在使用 Hadoop Map Reduce 对维基百科数据转储(以 bz2 格式压缩)进行研究。由于这些转储太大(5 T),我无法将 xml 数据解压缩到 HDFS 中,而只能使用 hadoop 提供的 StreamXmlRecordReader。Hadoop 确实支持解压缩 bz2 文件,但它会任意拆分页面并将其发送到映射器。因为这是 xml,所以我们需要将拆分作为标签。有没有一起使用hadoop提供的内置bz2解压和流xml记录阅读器?

4

2 回答 2

7

维基媒体基金会刚刚发布了一个用于 Hadoop 流接口的 InputReader,它能够读取 bz2 压缩的完整转储文件并将其发送到您的映射器。发送到映射器的单元不是整个页面,而是两个修订版(因此您实际上可以在两个修订版上运行差异)。这是初始版本,我相信会有一些错误,但请试一试并帮助我们测试它。

此 InputReader 需要 Hadoop 0.21,因为 Hadoop 0.21 具有对 bz2 文件的流式支持。源代码位于:https ://github.com/whym/wikihadoop

于 2011-08-06T11:09:48.770 回答
0

您的问题与此处描述的相同。所以我的回答也是一样的 你应该在 TextInputFormat 上创建自己的变体。在那里,您创建了一个新的 RecordReader,它会跳过行,直到它看到逻辑行的开头。

于 2011-07-18T19:36:52.360 回答