標籤:

《Machine Learning:Clustering & Retrieval》課程第3章KMeans之並行化

1.先來看hadoop的hello world程序,word count。

單機的方法:

多機上統計,但在單機上combine的方式:

多機上統計,多機上combine的方式:

2.用mapreduce統計word count的基本過程是什麼?

第一步:map,把文檔中的每個詞map成(word,1)

第二步:reduce,對每個key的value list進行sum。

要注意,定義的reduce函數必須滿足交換律和結合律。比如加法就符合交換律和結合律。

3.具體過程是什麼?

這個圖裡沒有表現出combiner來,combiner可以看作減少shuffle的優化:

注意之所以可以用combiner來優化,是因為定義的reduce操作滿足交換律和結合律。

4.如何用mapreduce並行kmeans?

第一步:對每個點分配cluster

因為每個點是獨立的,所以可以map計算每個點屬於哪個cluster,生成(cluster, data_point)

第二步:重新計算cluster的位置

map後key為cluster,所以可以計算每個cluster,對應的所有data point的平均值,作為cluster的位置。

map

reduce

5.但是kmeans是iterative的,怎麼實現?

iterative不是mapreduce的標準流程,但是也是可以實現的。

6.總結


推薦閱讀:

世界沉醉在數據里
HDFS NameNode內存詳解
Azkaban任務流編寫
Apache kylin進階——Slow Query SQL改造篇
大數據那些事(30):Presto之坑和蘿蔔傻子和騙子的故事

TAG:Hadoop |