我從When do reduce tasks start in Hadoop瞭解到,hadoop中的reduce任務包含三個步驟:混洗,排序和減少排序(以及之後的減少)只能在所有映射器完成後纔開始。有沒有辦法開始排序,並減少每次映射器完成。如何開始排序和減少hadoop之前洗牌完成所有mappers?
例如,讓我們只有一個mapper mapperA和mapperB以及2個reducer。我想要做的是:
- mapperA完成
- 洗牌複製mapperAs輸出相應的分區讓說,以減速機1級2
- 排序上減速1和2點開始分揀,減少併產生一些中間輸出
- 現在mapperB完成
- 混洗拷貝mapperBs輸出的適當分區減速器1和2
- 排序和再次減少對減速器1和2點開始和減速器米erges與舊的新產品
這可能嗎?謝謝
是的,但這只是開始洗牌過程。 sortper和reduce只會在mapperB完成後纔會啓動。我想要做的就是在mapperB完成之前開始排序和縮小(我的上述方案中的第3步)。還是我誤解了一些東西? – teo
那麼排序和減少無法啓動,直到所有的映射器輸入都在 –