【问题标题】:How to read compressed bz2 (bzip2) Wikipedia dumps into stream xml record reader for hadoop map reduce如何读取压缩的 bz2 (bzip2) 维基百科转储到 hadoop map reduce 的流 xml 记录阅读器
【发布时间】:2011-07-17 19:50:37
【问题描述】:

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

【问题讨论】:

  • 为什么需要标签分页?
  • 我们希望它们被 标签分割,以便能够在 python 中使用解析器来获取我们需要分析的数据(我们将对以前的修订和文本进行不同类型的分析)所有页面)。
  • 标签分割是不可行的,因为有许多超过 100Gb 的页面。查看我关于我们刚刚发布的 InputReader 的完整答案。

标签: xml streaming hadoop wikipedia bzip2


【解决方案1】:

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

此 InputReader 需要 Hadoop 0.21,因为 Hadoop 0.21 支持 bz2 文件的流式传输。源代码在:https://github.com/whym/wikihadoop

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-14
      • 1970-01-01
      • 1970-01-01
      • 2015-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-14
      相关资源
      最近更新 更多