2014-04-07 3 views
1

저는 scala 0.9.0에서 k-means 클러스터링을 실행 중이며 n 개의 시스템간에 데이터가 분산되어 k 개의 센터 데이터 포인트를 계산하는 방법을 이해하려고합니다.분산 계산에 대한 K- 평균 계산

k- 평균 클러스터링이란 무엇인지 알고 있지만 데이터가 어떻게 나누어지고 분산 계산 (계산 및 축소)에서 계산되는지 알고 싶습니다. 이 스칼라 버전에서 KMeansDataGenerator는 데이터 포인트를 n 개의 파티션으로 생성하는 옵션을 가지고 있습니다. 각 슬레이브 노드가 데이터 파일의 파티션 하나를 가져 옵니까?

답변

5

KMeansDataGenerator은 데이터 생성에 sc.parallelize을 사용합니다. sc.parallelize에있는 매개 변수는 파티션 번호입니다. KMeansDataGenerator의 옵션을 통해 변경할 수 있습니다.

그 후 SparkKMeans은 전체 k-means 알고리즘에서이 파티션 번호를 사용합니다.

각 슬레이브 노드가 하나의 데이터 파일 파티션을 가져 옵니까?

스파크는 파티션의 위치를 ​​보장하지 않습니다. 그러나 파티션 파일이있는 가장 가까운 노드로 계산을 예약하려고합니다.

+1

"각 슬레이브 노드가 데이터 파일의 파티션 하나를 가져 옵니까?" 각 노드는 많은 파티션을 가질 수 있습니다. ** 각 ** 작업 **은 하나의 파티션을 가져옵니다. – samthebest