① KMeansMapper:在configure中初始化mapper時(shí)讀入上一次迭代產(chǎn)生或初始聚類中心(每個(gè)mapper都讀入所有的聚類中心)。map方法對(duì)輸入的每個(gè)點(diǎn)都計(jì)算其最近的距離類,并加入輸出的key為該點(diǎn)所屬聚類ID,value為KMeansInfo實(shí)例,包含點(diǎn)的個(gè)數(shù)和各分量的累加和。
② KMeansCombiner:本地累加KMeansMapper輸出的同一聚類ID下的點(diǎn)個(gè)數(shù)和各分量的和。
③ KMeansReducer:累加同一聚類ID下的點(diǎn)個(gè)數(shù)和各分量的和,求本次迭代的聚類中心,并根據(jù)輸入Delta判斷該聚類是否已收斂。上一次迭代聚類中心與本次迭代聚類中心距離小于Delta。輸出各聚類中心和其是否收斂標(biāo)記。