You might try turning off the GC Overhead limit (-XX:-UseGCOverheadLimit)
Also you could turn on verbose GC logging (-verbose:gc -Xloggc:/tmp/@taskid@.gc)
to see what is happening.
Because the OOC still has to create and destroy objects I suspect that the heap is just
getting really fragmented.
There are options that you can set with Java to change the type of garbage collection and
how it is scheduled as well.
You might up the heap size slightly - what is the default heap size on your cluster?========= mailto:firstname.lastname@example.org ============
On 9/9/2013 8:33 PM, Alexander Asplund wrote:
A small note: I'm not seeing any partitions directory being formed
under _bsp, which is where I have understood that they should be
On 9/10/13, Alexander Asplund <email@example.com> wrote:
Really appreciate the swift responses! Thanks again.
I have not both increased mapper tasks and decreased max number of
partitions at the same time. I first did tests with increased Mapper
heap available, but reset the setting after it apparently caused
other, large volume, non-Giraph jobs to crash nodes when reducers also
I'm curious why increasing mapper heap is a requirement. Shouldn't the
OOC mode be able to work with the amount of heap that is available? Is
there some agreement on the minimum amount of heap necessary for OOC
to succeed, to guide the choice of Mapper heap amount?
Either way, I will try increasing mapper heap again as much as
possible, which hopefully will run.
On 9/9/13, Claudio Martella <firstname.lastname@example.org> wrote:
did you extend the heap available to the mapper tasks? e.g. through
On Tue, Sep 10, 2013 at 12:50 AM, Alexander Asplund
Thanks for the reply.
I tried setting giraph.maxPartitionsInMemory to 1, but I'm still
getting OOM: GC limit exceeded.
Are there any particular cases the OOC will not be able to handle, or
is it supposed to work in all cases? If the latter, it might be that I
have made some configuration error.
I do have one concern that might indicateI have done something wrong:
to allow OOC to activate without crashing I had to modify the trunk
code. This was because Giraph relied on guava-12 and
DiskBackedPartitionStore used hasInt() - a method which does not exist
in guava-11 which hadoop 2 depends on. At runtime guava 11 was being
I suppose this problem might indicate I'm running submitting the job
using the wrong binary. Currently I am including the giraph
dependencies with the jar, and running using hadoop jar.
On 9/7/13, Claudio Martella <email@example.com> wrote:
OOC is used also at input superstep. try to decrease the number of
partitions kept in memory.
On Sat, Sep 7, 2013 at 1:37 AM, Alexander Asplund
I'm trying to process a graph that is about 3 times the size of
available memory. On the other hand, there is plenty of disk space. I
have enabled the giraph.useOutOfCoreGraph property, but it still
crashes with outOfMemoryError: GC limit exceeded when I try running
I'm wondering of the spilling is supposed to work during the input
step. If so, are there any additional steps that must be taken to
ensure it functions?
David W. Boyd
7901 Jones Branch, Suite 700
Mclean, VA 22102
============== http://www.data-tactics.com.com/ ============
First Robotic Mentor - FRC, FTC - www.iliterobotics.org
President - USSTEM Foundation - www.usstem.org
The information contained in this message may be privileged
and/or confidential and protected from disclosure.
If the reader of this message is not the intended recipient
or an employee or agent responsible for delivering this message
to the intended recipient, you are hereby notified that any
dissemination, distribution or copying of this communication
is strictly prohibited. If you have received this communication
in error, please notify the sender immediately by replying to
this message and deleting the material from any computer.