MaxCompute學習筆記

MaxCompute MapReduce 過程:

以wordcount爲例:
a.txt文件如下:

 a,b,a
 b,b,a
 c,a,a

如上所示,有3行

MAP階段:

1.每一行一個map

map1 負責 a,b,a
map2 負責 b,b,a
map3 負責 c,a,a

2.以 key-value形式讀取數據

map1: <a,1> <b,1> <a,1>
map2: <b,1> <b,1> <a,1>
map3: <c,1> <a,1> <a,1>

SHUFFLE階段:

1.合併排序

排序階段 (以key值排序)

map1: <a,1> <a,1> <b,1>
map2: <a,1> <b,1> <b,1>
map3: <a,1> <a,1> <c,1>

合併階段( key值相同的value累加)

map1: <a,2 ><b,1>
map2: <a,1> <b,2>
map3: <a,2> <c,1>

2.分配給Reduce

以key值排序

<a,2> <a,1> <a,2> <b,1> <b,2> <c,1>
按key值分配給不同reduce
reduce1: <a,2> <a,1> <a,2>
reduce2: <b,1> <b,2>
reduce3: <c,1>

REDUCE階段

合併運算,並排序:

在 Shuffle 階段前期,首先對每個 Map Worker 的輸出
reduce1: <a,5>
reduce2: <b,3>
reduce3: <c,1>
注意: maxcompute mapreduce的輸入,輸出只能是表

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章