2014-04-07 37 views
1

我在scala 0.9.0上運行k均值聚類,我試圖理解數據如何在n個系統之間分佈來計算k箇中心數據點。分佈式計算的K均值計算

我明白k-means聚類是什麼,但我想知道數據如何分配和計算是在分佈式計算(地圖和減少)上完成的。在這個scala版本中,KMeansDataGenerator可以選擇將數據點生成到n個分區中。每個從節點是否都有一個數據文件分區?

回答

5

KMeansDataGenerator使用sc.parallelize來生成數據。 sc.parallelize中有一個參數是分區號。您可以通過KMeansDataGenerator的選項進行更改。

之後,SparkKMeans將在整個k-means算法中使用此分區號。

每個從節點是否獲得數據文件的一個分區?

Spark不保證分區的位置。但是,它會嘗試將計算安排到具有分區文件的最近節點。 「每個從節點是否得到一個數據文件的分區?」

+1

「每個節點可以獲得多個分區 - 每個**任務**獲取一個分區。 – samthebest