例如在字計數工作, 我有2名映射器映射器A和B.映射在reducer任務中調用reduce函數之前發生洗牌嗎?
映射器A的輸出是:{hi,1},{hello,1},{hey,1}
映射器B的輸出是:{hi,1},{bye,1},{hey,1}
假設,沒有組合器和1級減速器
然後,首先,混洗髮生
這樣,在洗牌兩個MAPP的輸出ERS合併並將得到的是:
{hi,[1,1]},{hello,1},{hey,[1,1]},{bye,1}
然後排序發生的情況:
{bye,1},{hello,1},{hey,[1,1]},{hi,[1,1]}
則減少函數在減速器任務被調用這使得O/P爲:
bye,2
hello,1
hey,2
hi,2
上述過程是否正確?並且在調用reduce函數之前進行洗牌?或者調度器只是將來自不同映射器的數據聚集在一起,但不會將數據與相同的鍵一起分組,並且這個過程發生在排序後?爲什麼在這裏排序有用?