我正在使用Hadoop Map Reduce来研究维基百科数据转储(以bz2格式压缩)。由于这些转储非常大(5T),我无法将xml数据解压缩到HDFS中,只能使用hadoop提供的StreamXmlRecordReader。 Hadoop确实支持解压缩bz2文件,但它可以任意分割页面并将其发送给映射器。因为这是xml,所以我们需要分割为一个标签。反正有用hadoop提供的内置bz2解压缩和流xml记录读取器吗?如何读取压缩bz2(bzip2)维基百科转储到流xml记录读取器的hadoop映射减少
6
A
回答
0
您的问题与描述的here相同。所以我的答案也是一样的你应该在TextInputFormat上创建你自己的变体。在那里你创建一个新的RecordReader,它跳过行,直到它看到一条逻辑行的开始。
7
维基媒体基金会刚刚发布了Hadoop Streaming接口的InputReader,它能够读取bz2压缩的完整转储文件并将其发送给您的映射器。发送给映射器的单位不是整个页面,而是两个修订版本(因此您可以在两个修订版本上实际运行差异)。这是最初的版本,我相信会有一些错误,但请给它一个旋转并帮助我们测试它。
该InputReader需要Hadoop 0.21,因为Hadoop 0.21支持bz2文件的流式传输。源代码位于:https://github.com/whym/wikihadoop
相关问题
- 1. 使用大* .bz2(维基百科转储)
- 2. 读取内存映射的bzip2压缩文件
- 3. Hadoop流式缩减器映射器
- 4. iPhone上的维基百科阅读器
- 5. 如何从iPhone中的维基百科读取数据?
- 6. 从维基百科获取文章XML转储 - 通过标题
- 7. 从维基百科XML提取表转储
- 8. 从维基百科XML转储中获取静态HTML文件
- 9. 如何减小okawix维基百科转储的大小?
- 10. 从维基百科页面获取xml
- 11. 导入维基百科转储到MySql
- 12. 读取Hadoop的地图矩阵减少
- 13. 是否有任何转储维基百科Pageid到wikidata id映射?
- 14. 提取维基百科
- 15. 获取维基百科API
- 16. 在Hadoop中读取BZip2文件
- 17. Spark Scala无法解析维基百科数据:enwiki_latest_articles xml bz2
- 18. 从维基百科获取维基百科主题标题
- 19. 如何抓取整个维基百科?
- 20. 如何在读取压缩流时“解压缩”
- 21. Lucene的维基百科转储
- 22. pyttsx python阅读维基百科api
- 23. 如何读取Hibernate映射
- 24. 如何让hadoop映射器读取整个句子
- 25. 解析XML维基百科
- 26. 多数据转储维基百科
- 27. 解析维基百科转储
- 28. 维基百科转储文件
- 29. 处理维基百科转储文件
- 30. 使用.NET读取压缩的xml
为什么需要按标签拆分页面? – svick
我们希望它们能被标签拆分,以便能够在python中使用解析器来获取我们需要分析的数据(我们将对以前的修订和所有页面的文本进行不同类型的分析)。 –
通过拆分标签将不可行,因为有很多页面长度超过100Gb。查看我关于刚刚发布的InputReader的完整答案。 –
DrDee