映射器是否同時處理多個文件或映射器一次只能處理一個文件?我想知道的默認行爲hadoop中每個映射器的單個或多個文件?
回答
- 默認情況下,典型的Mapreduce作業遵循每個映射器的一個輸入拆分。
- 如果文件大小大於分割大小(即,它比一個輸入分割具有更多 ),則它是每個文件的多個映射器。
- 這是一個文件每個映射器,如果該文件不可拆分像
Gzip
文件或如果進程是Distcp
其中文件是最好的粒度級別。
我明白了,所以我認爲輸入單據可以有來自多個文件的數據嗎?這意味着一個映射器可以同時處理多個文件。 – user3396729
不,分裂在文件級完成。每個文件至少有一個輸入分割,並且不能有多個文件組成。如果你有2個文件,一個是192MB,另一個是32MB,分割大小是128MB,結果將是3(2 + 1)個輸入分割,這將運行3個地圖任務。儘管較大文件的第二個分割小於分割大小,但它不會與其他文件的分割合併。 – franklinsijo
因此,如果拆分是在文件級別完成的,並且沒有拆分可以由多重文件組成,這意味着一個映射器將只有單個文件的數據?一個映射器只能用於一個文件的數據,對嗎? – user3396729
如果你去的FileInputFormat的定義,你會看到在頂部有三個方法:
addInputPath(JobConf的conf,路徑路徑) - 一個路徑添加到map-reduce作業的輸入列表。因此,將拿起目錄中的所有文件,而不是單一的一個,就像你說的
addInputPathRecursively(名單結果,文件系統FS,路徑路徑,PathFilter輸入過濾器) - 在輸入路徑遞歸添加文件到結果。
addInputPaths(JobConf的conf,字符串commaSeparatedPaths) - 添加指定用逗號分隔的路徑輸入列表的地圖,減少工作
輕鬆操作這三個方法,你可以設置任何你想要的多種輸入。然後您的InputFormat的InputSplits開始在映射器作業之間拆分這些數據。 Map-Reduce框架依賴於作業的InputFormat:
驗證作業的輸入規範。
將輸入文件拆分爲邏輯InputSplits,然後將每個輸入文件分配給單獨的Mapper。
提供RecordReader實現,用於從邏輯InputSplit收集輸入記錄以供Mapper處理。
因此,技術上來說,單個映射器將只處理它自己的部分,它可以包含來自多個文件的數據。但是對於每種特定的格式,您應該查看InputSplit以瞭解數據如何在映射器中分佈。
不,一次映射器不能處理多個文件。單個mapreduce作業可以一次處理多個文件。所有這些路徑定義都與工作有關,而與任務無關。 – franklinsijo
@franklinsijo我們可能會誤解OP在一次處理多個文件時的含義。我的意思是它可以處理來自輸入的多個文件。這個總輸入將被分成幾部分,每個映射器將處理它自己的部分,但不是一次處理幾個部分。這就是我的答案。 – Alex
是「不是一次」,您可能必須在答案中更改該部分。 OP想知道映射器而不是作業本身'映射器是否處理多個文件'? 。 – franklinsijo
- 1. Hadoop按照每個映射工作流多個文件
- 2. 從Hadoop中的映射器生成多個輸出文件MapReduce
- 3. Hadoop幾個映射器
- 4. 每個Hadoop映射任務使用多少個核心?
- 5. Hadoop爲每個映射器使用一個實例
- 6. Hadoop Streaming和多個Reducer步驟在每個步驟之間沒有映射器
- 7. 多個輸出文件Hadoop的數據流與Python映射
- 8. Hadoop Wordcount具有多個文件並殺死其中的映射器的示例
- 9. Hadoop的許多映射器
- 10. 每個ActiveModel/Record有多個映射?
- 11. hadoop mapreduce只執行一個映射器
- 12. MyBatis中的單個映射器方法中的多個語句
- 13. 在Hadoop中爲多個映射器配置映射端加入Map/Reduce
- 14. Hadoop作業從多個目錄中獲取輸入文件並檢測映射階段中的每個目錄
- 15. 在Hadoop中對多個輸出目錄使用多個映射器MapReduce
- 16. Hadoop映射器可以在輸出中生成多個鍵嗎?
- 17. Hadoop流式Python多輸入文件單映射器
- 18. 每個Hadoop映射器將讀取的默認大小是多少?
- 19. STDIN或文件作爲Hadoop環境中的映射器輸入?
- 20. 在hadoop上的一個流式作業中使用多個映射器輸入?
- 21. Hadoop的一個映射和多個減少
- 22. Hibernate2映射單個類到多個表
- 23. 將多個CSV映射到單個POJO
- 24. 映射多個類單個實體
- 25. NHibernate:多個映射到單個表
- 26. Java:同步排列多個ArrayList或單個映射的ArrayList
- 27. 一個映射器或一個reducer來處理一個文件或目錄
- 28. 如何將多個IP地址映射到單個服務器的文件夾
- 29. Hadoop:映射器沒有從多個輸入路徑讀取文件
- 30. 只有一個映射器的組合器,在hadoop中有兩個映射器的情況下
您可以使用CombineFileInputFormat處理許多小文件。 –