我正嘗試使用map-reduce從FTP並行讀取文件。我有一個代碼工作,它讀取文件並對其執行字數統計。但是,當輸入大小很大時(特定情況下超過2 MB)它會失敗。 它以一個溢出0完成消息停止,然後一個地圖100%減少0%。然後通過服務器關閉連接。 我不太明白。 Spill 0是什麼意思?爲什麼代碼會因大輸入而失敗?我如何分割輸入並將其提供給映射器?這會有幫助嗎? 我可以擴展FileInputFormat類來完成這項工作嗎? 謝謝:)使用FileInputFormat爲大文件的映射器分割輸入?
0
A
回答
0
是的,你可以實現你的InputFormat
。除了FileInputFormat
之外,Hadoop中還有其他幾個人,例如TextInputFormat
,KeyValueInputFormat
等。您還可以定義從分組中讀取記錄的方式。爲此,您需要實施自己的RecordReader
。
http://developer.yahoo.com/hadoop/tutorial/module4.html
例如,默認InputFormat
是TextInputFormat
讀取一個文件,並使用LineRecordReader
由一線得到記錄行。如果您正在從文件中讀取結構化數據,則可以實施您自己的RecordReader
,以便每個記錄都是來自該文件的數據結構。
在任何情況下,做一個從FTP讀取文件的MapReduce作業都很奇怪。 Hadoop的工作原理是因爲數據存儲在Hadoop的文件系統(HDFS)上,該文件系統是一個分佈式文件系統,其中每個文件分成塊並分佈在文件系統的所有節點上。您應該採用的方式是將該文件下載到您的HDFS並執行您的MapReduce作業。
相關問題
- 1. 設置輸入分割不工作的映射器的Hadoop數
- 2. 輸入分割的數量等於映射器的數量?
- 3. 加載文件分割的hadoop映射函數的輸入到數據結構
- 4. 將Hashmap作爲輸入映射到映射器而不是文件
- 5. STDIN或文件作爲Hadoop環境中的映射器輸入?
- 6. Amazon ElasticMapReduce(EMR)控制分割大小/數量的映射器
- 7. DynamoDB映射器「batchLoad()」輸入
- 8. 如何將文件輸入分割爲Java中的部分
- 9. 使用PHP分割大文件
- 10. Hadoop:爲映射分組文件
- 11. 將長輸入分割爲多個文本文件
- 12. Hadoop流式Python多輸入文件單映射器
- 13. XML文件輸入映射/減少Hadoop Windows服務器
- 14. 分割文件清單成單獨的文件輸入元件
- 15. 多個小文件作爲輸入映射減少
- 16. TaskTracker爲每個輸入分割或每個鍵值對生成一個新的映射器?
- 17. 將用戶輸入映射到文本文件列表
- 18. Hadoop MapReduce中Mapper的最大輸入文件大小(無分割)是多少?
- 19. 使用內存映射文件讀取大文件
- 20. 與Doctrine2三重分割映射問題
- 21. 將大文件分割爲小文件,條件爲
- 22. 輸入的EditText即使哈希映射
- 23. 映射器輸入鍵值對Hadoop中
- 24. 如何使用bash分割輸入?
- 25. 映射使用自動映射器
- 26. 在Hadoop中使用Avro輸入格式控制分割大小
- 27. 如何檢查映射器的輸入大小(以字節爲單位)?
- 28. 容器文件映射卷
- 29. 使用java分割文件
- 30. 如何判斷文件應該被分割爲哪些輸入?
謝謝迭戈..然而,我陷入了一個不同的場景。我們有一個從FTP服務器傳輸數據的應用程序。我們希望使用mapreduce實際將服務器中的數據導入到我們的hdfs中。任何指針呢? – RadAl