- 每次Kmeans迭代後,Hadoop是否會將輸出集羣存儲到HDFS中,並在下一次迭代中將它們提取到內存中?
- 映射器將觀察結果放入特定的簇中。我的意思是每個節點都必須知道所有的數據,並且hadoop只分配計算而不是數據,這樣每個節點都會給出某個節點的觀察集,對不對?
1
A
回答
0
- 是的,如果我們必須從一個MR作業傳送到另一個數據 - HDFS(或準確地說DFS)是唯一的選擇。這不是問題,因爲我們在這裏彙總了集羣的帶寬
- K均值聚類不需要將所有數據發送到所有節點 - 它具有非常高效的並行實現。 http://blog.data-miners.com/2008/02/mapreduce-and-k-means-clustering.html 總而言之,如果將行距離從本地可用組聚合到所有中心,然後將這些少量信息發送給集中處理,則其概念是聚合距離。
1
對於這樣的迭代處理Hadoop/MR,因爲存在一個開銷,因爲一次又一次地運行相同的工作,直到達到聚集點的收斂。 Hadoop比其他框架慢10倍,如下所述。
像K-Means一樣的迭代處理可以使用BSP高效且容易地完成。 Apache Hama和Apache Giraph都實施了BSP。 Apache Hama公開BSP原語時,Apache Giraph在內部使用BSP,主要用於圖形處理,但不公開BSP原語。
Google發佈了關於Pregel的大規模迭代處理的論文,他們使用BSP作爲基礎模型。
0
對於迭代算法,如KMeans,Hadoop和MR並不是很好的選擇,儘管它仍然可行。我有機會在Hadoop上實現馬爾科夫決策過程,這給我帶來了巨大的痛苦,因爲每次迭代都涉及磁盤IO,無論是輸入還是輸出。除此之外,在Hadoop集羣中啓動迭代(MR作業)需要數十秒的時間。
後來我試了一下Spark,這是一個像Hadoop一樣可以完美工作的MR框架。它使用羣集中所有商品計算機的內存來緩存迭代不變量,而不是反覆讀取和寫入磁盤。你可能想看看:-)
相關問題
- 1. 基於mapreduce和hadoop的迭代kmeans
- 2. WEKA類映射和減少KMeans階段在hadoop上聚類
- 3. R:矩陣上的kmeans(100x21)
- 4. Hadoop上的Kerberos
- 5. Hadoop上的JavaCV
- 6. Azure上的Hadoop
- 7. 如何在hsv矩陣上使用kmeans
- 8. 在羣集kmeans數據上顯示行
- 9. kmeans with big data
- 10. opencv多維kmeans
- 11. Kmeans Spark ML
- 12. Kmeans - group by
- 13. Streaming Kmeans Spark JAVA
- 14. Kmeans fit_predict with word2vec
- 15. vlfeat kmeans C++
- 16. R kmeans初始化
- 17. 包tm。 kmeans問題
- 18. sklearn中的可重現kmeans
- 19. KMeans.cluster_centers_在sklearn KMeans中的值
- 20. R kmeans對象的集合
- 21. 在Matlab中kmeans的質心
- 22. Streaming Kmeans中的錯誤,Spark
- 23. 不含kmeans的質心matlab
- 24. Hadoop上的Java UDF輸入參數 - 從Pig上調用Hadoop
- 25. Hadoop在我的JAR上提供SCDynamicStore,但不在hadoop-examples.jar上
- 26. 使用sklearn KMeans與SciPy kmeans相比有優勢嗎?
- 27. EC2上的Hadoop中的BindException
- 28. 在HoughLineP()的輸出上運行Kmeans的Opencv:Vector to Mat轉換?
- 29. 虛擬機上的Hadoop
- 30. NFS上的Hadoop集羣
非常感謝,你給的參考是非常有幫助的。 – user1687035