flink-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Attila BernĂ¡th <bernath.at...@gmail.com>
Subject Spargel: Memory runs out at setNewVertexValue()
Date Mon, 29 Sep 2014 14:11:17 GMT
Dear Developers,

We are experimenting with a pagerank-variant, in which the nodes of
the graph to work with are grouped into supernodes. The nodes send
messages to supernodes instead of nodes, thus we expect to decrease
the number of messages and accelerate the algorithm.
We implemented this algorithm with the Spargel API using the vertex
centric iterations. The VertexValue type contains all the information
that a supernode has to know: the list of the nodes grouped into this
supernode, their current pagerank, their in-neighbours etc.
We run this algorithm on a cluster containing some 40-50 machines with
an input graph containing something like 1million nodes. We always get
the error that one particular machine runs out of memory (always the
same machine) at the vertex state update. The error message is as
follows.

Error: The program execution failed: java.lang.RuntimeException:
Memory ran out. Compaction failed. numPartitions: 32 minPartition: 1
maxPartition: 155 number of overflow segments: 0 bucketSize: 178
Overall memory: 32604160 Partition memory: 24248320 Message: null
    at hu.sztaki.ilab.cumulonimbus.custom_pagerank_spargel.SuperNodeRankUpdater.updateVertex(SuperNodeRankUpdater.java:71)
    at hu.sztaki.ilab.cumulonimbus.custom_pagerank_spargel.SuperNodeRankUpdater.updateVertex(SuperNodeRankUpdater.java:15)
    at org.apache.flink.spargel.java.VertexCentricIteration$VertexUpdateUdf.coGroup(VertexCentricIteration.java:430)
    at org.apache.flink.runtime.operators.CoGroupWithSolutionSetSecondDriver.run(CoGroupWithSolutionSetSecondDriver.java:141)
    at org.apache.flink.runtime.operators.RegularPactTask.run(RegularPactTask.java:510)
    at org.apache.flink.runtime.iterative.task.AbstractIterativePactTask.run(AbstractIterativePactTask.java:137)
    at org.apache.flink.runtime.iterative.task.IterationTailPactTask.run(IterationTailPactTask.java:109)
    at org.apache.flink.runtime.operators.RegularPactTask.invoke(RegularPactTask.java:375)
    at org.apache.flink.runtime.execution.RuntimeEnvironment.run(RuntimeEnvironment.java:265)
    at java.lang.Thread.run(Thread.java:724)

Line 71 in SuperNodeRankUpdater is a call to the function setNewVertexValue().
Do you have some suggestions? Shall I try to put together some example?

Thank you!

Attila

Mime
View raw message