我有兩個映射器類,它們處理不同的輸入,但是它們的輸出將採用相同的格式,並且會轉到同一個縮減器。是否可以爲兩個映射器類中的一個實現組合器?只有一個映射器的組合器,在hadoop中有兩個映射器的情況下
2
A
回答
1
對於組合器,如果您將Hadoop MR設置爲使用一個,它將處理來自所有映射器的輸出。您無法指定特定的映射器。
也許考慮這兩個選項:
應用組合的所有輸出 - 你的映射從映射器輸出到一個共同的類型,這樣他們可以(參加?)由減速處理。考慮一下聯合收割機是否能正常工作,而不管數據來自哪個映射器。對這個想法的一個修改是在你的鍵值輸出中設置一個類型變量,並將其用在合成器中以決定天氣做什麼。
使用地圖本地組合 - 如果您知道其中一個映射器的輸出結合良好,您可以在映射器本身內進行一些聚合/組合,並且只能定期寫入輸出。爲了使這個工作良好,你需要對工作中的輸入數據有一定的瞭解。
0
該查詢有點不清楚。我假設你問的是重複使用相同的組合器來組合兩個不同的映射器的輸出。這應該是可能的,因爲這兩個映射器的輸出是相同的。
使用MultipleInputs類可以在單個作業中使用兩個映射器,或者可以用於兩個不同的作業。無論如何,組合器必須在每個作業的基礎上指定。
此外,請注意
1)中的O /映射器的p應該匹配減速機的I/P。
2)映射器的o/p應該與組合器的I/P匹配。
3)組合器的I/P和O/P應該是相同的類型。
0
組合器適用上的最後一個鏈映射器,樣本代碼附
ChainMapper.addMapper(job, SalesRecordMapper.class, LongWritable.class, Text.class, Text.class, DoubleWritable.class, configuration);
ChainMapper.addMapper(job, ItemDiscountMapper.class, Text.class, DoubleWritable.class, Text.class, DoubleWritable.class, configuration);
job.setCombinerClass(DoubleReducer.class);
相關問題
- 1. hadoop mapreduce只執行一個映射器
- 2. 有一個映射器無法映射在特定條件下
- 3. Hadoop幾個映射器
- 4. Hadoop的許多映射器
- 5. Symfony:在沒有映射的情況下在兩個實體之間創建一個查詢生成器
- 6. Hadoop映射器上下文對象
- 7. HADOOP:從映射器發射矩陣
- 8. hadoop orc table始終只需要一個映射器
- 9. 在Java中的另一個數據映射器內使用數據映射器?
- 10. 通用映射器,而不是有大量的個人映射器
- 11. 解開一個混合語義映射到的情況下類
- 12. Hadoop中的映射器數量
- 13. Tuple作爲Hadoop映射器中的鍵
- 14. Hadoop將數據從映射器減少到組合器
- 15. 在映射器
- 16. 在序列中運行Hadoop映射器
- 17. Hadoop流式縮減器映射器
- 18. Hadoop映射器/還原器重用
- 19. 在Hadoop中爲多個映射器配置映射端加入Map/Reduce
- 20. 只有一個映射器,減速運行,即使我更改爲5級映射器和2個減速
- 21. 來自兩個對象的映射數據兩個與自動映射器
- 22. 嵌套對象在集合中的自動映射器映射
- 23. Hadoop的gzip的輸入文件只有一個映射
- 24. hadoop中每個映射器的單個或多個文件?
- 25. 如何在我的情況下,兩個陣列映射
- 26. 用戶映射器在自動映射器中的ForMember
- 27. Hadoop的:一個值(爪哇)的(鍵,值)的映射器
- 28. Hadoop - 映射器沒有發射任何東西
- 29. Hadoop的映射器運行緩慢
- 30. HADOOP - 獲取映射器內的nodename