我正在使用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