2017-04-04 7 views
0

Spark의 GraphX ​​그래프 분석 라이브러리를 사용하여 implementation of a certain graph clustering algorithm을보고 있습니다. 구현에서 여러 개의 가변 (var 멤버)이있는 class VertexState을 사용하는 것으로 나타났습니다.Spark의 GraphX ​​분산 함수를 사용할 때 변경 가능한 속성을 가진 노드를 갖는 것이 좋습니까?

분산 된 구현에서 동일한 노드가 둘 이상의 처리 노드에서 복제 될 수 있기 때문에 이러한 종류의 작업을 수행하면 잘못된 동작이 발생할 수 있는지 궁금합니다.

제 질문은이 구현의 맥락에서이 연습의 정확성에 대해서는별로 중요하지 않지만 일반적으로는 그렇습니다.

아마도 정점 집합의지도와 같은 특정 기능을 사용하는 것이 좋지만 mapReduceTriplets와 같이 한 번에 둘 이상의 정점을 포함하는 다른 요소를 사용하는 경우 문제가 될 수 있습니다.

답변

1

변경 가능한 멤버를 갖는 것은 괜찮습니다 ... 돌연변이가없는 한. 모든 유형의 데이터 변이가 올바르지 않거나 결정적이지 않은 결과를 초래할 수 있습니다. 집계가있는 변경 가능 축약기를 사용할 수 있지만 분산 오브젝트에 저장된 데이터는 절대 수정하면 안됩니다.