使用Spark的GraphX分布式函数时,是否可以使用具有可变属性的节点?

时间:2017-04-04 22:20:00

标签: apache-spark nodes mutable spark-graphx

我正在使用Spark的GraphX图形分析库查看implementation of a certain graph clustering algorithm。我注意到该实现使用了class VertexState和几个可变的(var成员)。

我想知道做这种事情是否会导致不正确的行为,因为在分布式实现中,可以在多个处理节点中复制相同的节点。

我的问题不在于这种做法在这个特定实施的背景下的正确性,而在于一般情况。

也许没关系,只是在顶点集上使用某些函数,例如map,但如果一次使用涉及多个顶点的其他函数,例如mapReduceTriplets,可能会出现问题?

1 个答案:

答案 0 :(得分:1)

拥有可变成员就好了...只要你不改变它们。任何类型的数据突变都可能导致不正确或不确定的行为。在某些情况下,您可以将可变累加器与聚合一起使用,但不应修改存储在分布式对象中的数据。