《Machine Learning:Clustering & Retrieval》課程第3章KMeans之並行化
01-31
1.先來看hadoop的hello world程序,word count。
這個圖裡沒有表現出combiner來,combiner可以看作減少shuffle的優化:
推薦閱讀:
單機的方法:
多機上統計,但在單機上combine的方式:
多機上統計,多機上combine的方式:
2.用mapreduce統計word count的基本過程是什麼?
第一步:map,把文檔中的每個詞map成(word,1)
第二步:reduce,對每個key的value list進行sum。
要注意,定義的reduce函數必須滿足交換律和結合律。比如加法就符合交換律和結合律。
3.具體過程是什麼?注意之所以可以用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 |