Hello,
I'm trying to run a graph job. But i have got some problems.
I want to use member variable in vertex class, the code is as follow. I
have changed the value of the member variable in one superstep. But when I use
this member variable in next superstep, the value of this member variable is
still the defalult value. For example, "match" is the member variable. I have
changed the value of "match" to be ture in superstep 0, but when I print
"match" in superstep 1, the result was "match: false".
Could anyone tell me why the value of member variable is changed? Thanks
very much.
Best wishes.
public static class ProbMatchVertex extends Vertex<Text, NullWritable,
TriTextPair> {
private boolean match = false;
@Override
public void compute(Iterable<TriTextPair> messages) throws
IOException {
if (getSuperstepCount() == 0) {
match = true;
sendMessageToNeighbors(new
TriTextPair(getVertexID(),
getVertexLabel(), new
Text("")));
} else if(getSuperstepCount() == 1){
System.out.println("match:" + match);
parents = new ArrayList<TriTextPair>();
for(TriTextPair msg : messages){
parents.add(msg);
sendMessage(msg.getFirst(), new
TriTextPair(getVertexID(), getVertexLabel(), new Text("")));
}
}
}
Ping Liu