1. 輸入(input):如給定一個文檔,包含如下四行:
Hello Java
Hello C
Hello Java
Hello C++
0 - Hello Java
1 - Hello C
2 – Hello Java
3 - Hello C++
(Hello , 1)
(Java , 1)
(Hello , 1)
(C , 1)
(Hello , 1)
(Java , 1)
(Hello , 1)
(C++ , 1)
(Hello , 1)
(Hello , 1)
(Hello , 1)
(Hello , 1)
(Java , 1)
(Java , 1)
(C , 1)
(C++ , 1)
注意:這一步需要移動數據,原來的數據可能在不同的datanode上,這一步過後,相同key的數據會被移動到同一臺機器上。最終,它會返回一個list包含各種k-value對,即:
{ Hello: 1,1,1,1}
{Java: 1,1}
{C: 1}
{C++: 1}
(Hello , 4)
(Java , 2)
(C , 1)
(C++,1)
6. 輸出(output): 輸出縮減之後的所有結果。
轉自知乎:https://www.zhihu.com/question/23345991/answer/223113502