Can anyone explain how the k-means clustering algorithm converges on distributed systems? It seems that each node in our hadoop cluster would simply find a local optimum. How do we update across multiple nodes?
At each iteration, local results are merged on a central node. You do not independently run k-means on each node! The data volume is constant in the data set size, and the CPU cost is neglible, so this is very favorable. k-means is embarassingly parallel, and all the advanced methos aim at achieving sublinear processing time.