Stripes设计模式
(k,k1) 3
(k,k2) 3
(k,k3) 2
(k,k4) 4
(z,z1) 1
(z,z2) 3
(z,z3) 2
(z,z4) 3
Stripes
k {(k1,3),(k2,3),(k3,2),(k4,4)}
z {(z1,1),(z2,3),(z3,2),(z4,3)}
MR1 阶段
生成同一个用户购买的所有商品的列表,由mr框架根据userid为key完成分组。
MR1-M
map(userID,item){
emit(userID,item);
}
MR1-R
reduce(userID,items[I1,I2,…,In]){
emit(userID,items);
}
MR2阶段
解决列表商品的共现问题,采用stripes方法,mapper完成大部分工作
MR2-M key=userid value=userID购买的商品列表
map(userID,items[I1,I2,…,In]){
for(Item item:items){
Map
MR2-R key=商品 value=条纹列表
reduce(item,stripes[M1,M2,…,Mm]){
Map