giraph-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nicolas DUGUE <>
Subject Re: Giraph : newbie questions
Date Tue, 17 Jul 2012 08:22:07 GMT
Thanks for your answer David !

Okay, but, is there a way to force Giraph to partition the Graph in our 
own way and how to do that ? It may be useful to minimize communication 
between Giraph nodes.

You're talking about starting the job with a minimum of vertices and add 
new vertices then. It seems really interesting, how to do that and how 
does it work ?
For example, I run my Giraph job with half of the vertices and during my 
first superstep, I add (I don't know how) some vertices to my file. Will 
these vertices be taken in account for my first superstep or just for 
the next superstep.
And when the vertices are loaded, is it possible to remove it from the 
memory ? In other words, I can add new vertices, can I remove vertices 
too ? So, is it possible to change the topology of my graph dynamically ?

Moreover, I'm still wondering what is the best ? Launching one VM with 
Giraph on each server and with 20GB of Ram OR launching two of its with 
10GB of RAM for each ?

And finally, when I launch a Giraph Job, Zookeeper is loaded in one 
virtual machine alone... Is there a way to run some Giraph jobs in this 
virtual machine too ? Or to mention explicitely in which VM running the 
ZooKeeper Job ?

Best regards,

On 16/07/2012 21:51, David Garcia wrote:
> Giraph partitions the vertices using a hashing function that's basically
> the equivalent of (hash(vertexID) mod #ofComputeNodes).
> You can mitigate memory issues by starting the job with a minimum of
> vertices in your file and then add them dynamically as your job progresses
> (assuming that your job doesn't require all of the vertices).
> -David
> On 7/16/12 4:36 AM, "Nicolas DUGUE" <> wrote:
>> Hi everybody,
>>      I'm new to Giraph so I have a few questions about how it works and
>> so how to configure it to make it work as well as possible.
>>      We have settled a cluster of 6 servers with 24 cpu, 24GB of RAM and
>> we want to use it to experiment with Giraph.
>>      Currently, we've made a few runs and we have some problems with
>> memory, it seems that we don't give enough of it to the JVM (GC
>> overhead, OutOfMemory, ...).
>>      Our experiments were benchmarks using the PageRank, we only succeed
>> in running it on a 100 millions edges graph by running two virtual
>> machines with 8GB of Ram on each of our server.
>>      Here are our questions :
>>      - What is the best ? Launching one VM with Giraph on each server
>> and with 20GB of Ram OR launching two of its with 10GB of RAM for each ?
>>      - Are there a way to minimize the memory used by Hadoop to give
>> more memory to the Giraph jobs ?
>>      - How is the graph distributed across the cluster ? Our graph may
>> be a power-law graph with a few nodes with a very large amount of edges
>> and a lot of nodes with a few edges. How Giraph will distribute this
>> kind of graph ? Does it take in account the number of edges of each
>> vertice ?
>> Thanks in advance,
>> Nicolas Dugué
>> PhD student at the Univeristy of Orléans

View raw message