如何读取压缩的bz2(bzip2)Wikipedia转储到流xml记录阅读器中,用于hadoop map reduce

Lau*_*Orr 6 xml streaming hadoop wikipedia bzip2

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

DrD*_*Dee 7

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

这个InputReader需要Hadoop 0.21,因为Hadoop 0.21具有bz2文件的流媒体支持.源代码位于:https://github.com/whym/wikihadoop


Nie*_*jes 0

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