我必須解析HDFS中Hadoop中Map Reduce程序中的PDF文件。所以我從HDFS獲得PDF文件輸入拆分,它必須被解析併發送到映射類。爲了實現這個InputFormat,我經歷了這個link。這些輸入分裂如何被解析並轉換爲文本格式?解析Hadoop Map中的PDF文件Reduce
回答
在Hadoop中處理PDF文件可以通過擴展FileInputFormat類來完成。讓類擴展它爲WholeFileInputFormat。在WholeFileInputFormat類中,您重寫getRecordReader()方法。現在每個pdf將作爲單獨輸入拆分收到。然後這些個別拆分可以被解析以提取文本。這個link給出了一個理解如何擴展FileInputFormat的明確例子。
這取決於你的分裂。我認爲(可能是錯誤的),您需要將每個PDF作爲一個整體來解析它。有Java庫可以做到這一點,Google知道它們在哪裏。
鑑於此,您需要使用一種方法,在準備分析文件時將文件作爲整體。假設你想在映射器中這樣做,你需要一個將整個文件傳送給映射器的讀取器。你可以寫自己的讀者來做到這一點,或者也許已經有一個。您可能會構建一個掃描PDF目錄的閱讀器,並將每個文件的名稱作爲關鍵字傳遞給映射器,並將內容作爲值傳遞給映射器。
實現WholeFileInput格式,而不是CombileFileInput格式解決了這個問題。因此,在WholeFileInput格式中,每個PDF文件將作爲單個輸入拆分接收。然後這些輸入分割可以完全解析。 – WR10 2012-02-25 09:56:09
另外,當試圖將整個文件解析爲單個拆分時,所讀取文件的大小是不是瓶頸?考慮一個TB文件的大小,如果有一個文件,那麼它必須在一臺機器上進行強制解析。我們如何克服這個瓶頸? – WR10 2012-02-27 08:55:08
那麼,首先要確定是否真的需要整個PDF才能解析它。如果不是,那就解決了這個問題。 假設你不能分解它,那麼我認爲你必須通過文件名作爲分割,並在你的映射器中直接從HDFS讀取。 – 2012-02-27 13:00:32
- 1. Hadoop Map Reduce CustomRecordReader
- 2. Hadoop Map-Reduce。 RecordReader
- 3. Hadoop map/reduce structure
- 4. Hadoop Map Reduce讀取文本文件
- 5. Map Reduce解析Hadoop中的JSON數據2.2
- 6. Hadoop Map/Reduce with database
- 7. Map-reduce hadoop錯誤
- 8. Pipeling hadoop map reduce jobs
- 9. Hadoop Map Reduce CustomSplit/CustomRecordReader
- 10. Hadoop Map-Reduce輸出文件異常
- 11. 數據的Hadoop的map-reduce
- 12. 的Hadoop的Map Reduce程序
- 13. 關於Hadoop的map-reduce
- 14. Hadoop Map/Reduce工作分配
- 15. hadoop map reduce -archives not unpacking archives
- 16. hadoop map reduce job pending too long
- 17. Hadoop Map/Reduce WARR mapred.LocalJobRunner:job_local_0001 java.io.EOFException?
- 18. Eclipse Map和Reduce插件和Hadoop教程
- 19. Hadoop中的TSV輸入Map Reduce
- 20. 如何高效地緩存hadoop map中的大文件reduce jobs?
- 21. 瞭解Hadoop中map和reduce任務的數量MapReduce
- 22. 的Hadoop的map-reduce映射編程
- 23. Hadoop推薦素數的map/reduce任務?
- 24. EC2上的Hadoop與Elastic Map Reduce
- 25. 多核機器上的Hadoop和map-reduce
- 26. Hadoop Map Reduce - 讀取HDFS文件 - FileAlreadyExists錯誤
- 27. Hadoop/Elastic Map Reduce使用二進制可執行文件嗎?
- 28. hadoop,map/reduce輸出文件(part-00000)和分佈式緩存
- 29. 什麼是最簡單的解釋什麼是Hadoop和Map/Reduce?
- 30. Hadoop Map Reduce CustomRecordReader減少階段
此答案可能是你正在尋找的一部分:http://stackoverflow.com/a/9298965/698839 – 2012-02-24 20:52:35