I am trying to understand the reasons behind Hbase throwing OOME when trying to 
run updates (the updates include insertions of new rows, modifications of 
existing rows and deletions).. I am getting OOME almost every time after 
running it for a few hours:  which either (hopefully) means I have to 
rate-limit my updates or my config settings are wrong for my use case. Can any 
of you help me with this issue?

Can you guys let me know what the usual causes are for OOME in hbase?

The machines have 16 cpus, 24 gigs ram..

The db: 120m rows 15KB each. 2 column families. 1 column family is 1 KB in size 
while the other is 14 KB. No compression for now.

5 region servers, ran around 4 or 5 clients per node on the 5 nodes that run 
the region servers..
2MB block size, 2gigs region size, WAL disabled.. 2MB write buffer.. 3 gigs 
heap size, flush size is a large value (600 MB which means it will never hit 
it).. Major compactions disabled..

My experiment: Run 5 processes in each node that hosts the RS's (25 in total): 
choose an operation at random (delete,insert or modify) biased with a 
prespecified ratio and then a row key at random and then perform the operation. 
I don't modify a row after it has been deleted. Auto flush is disabled

Other config values
blockingStoreFiles: 16
hfile.min.blocksize.size: 1MB
hfile.block.cache.size: 0.3 (not relevant here..)
<name>hbase.hregion.memstore.block.multiplier</name>  <value>8</value>
<name>hbase.regionserver.handler.count</name> <value>100</value>
Global memstore limit is anywhere between 0.35 and 0.4 of the max heap size... 
i.e. 1 to 1.2 gigs...

I have attached a log file just in case..

Thank you in advance :)
Vidhya

Reply via email to