hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From steven zhuang <steven.zhuang.1...@gmail.com>
Subject Re: regionserver loads but never unload?
Date Sun, 07 Mar 2010 05:25:48 GMT
thanks, J.D.

          I think I know why the regionserver takes so much memory now,
there are some really big row in my table, 1.2-1.5 GB in size. seems that
the regionserver sometime will try to load the whole region into memory, I
don't know when this will happen, maybe when it does a major compaction or
reassign the region to other regionserver or when it's asked to open/online
a region?.

you question is answered in line.

On Sat, Mar 6, 2010 at 2:15 AM, Jean-Daniel Cryans <jdcryans@apache.org>wrote:

> On Thu, Mar 4, 2010 at 7:19 PM, steven zhuang
> <steven.zhuang.1984@gmail.com> wrote:
> > thanks, J.D.
> >
> >              I am still not sure about the second question, from the log
> I
> > can see lines like:
> > *org.apache.hadoop.hbase.regionserver.Store: loaded
> > /user/ccenterq/hbase/XXX/1702600912/queries/1289015788537930719,
> > isReference=false, sequence id=1389720128, length=**175533391**,
> > majorCompaction=true (this is the region data, not the index, right?)*
> >              I do have some region really big, with millions of columns
> in
> > one column family, but isn't this length a little too big.
>
> The index and the metadata of the files of that Store in that region
> was loaded here.
>
> >
> >
> >        About the third one, I am actually not very clear of how memory is
> > used in Hbase, if it's only the few KBs by holding region info, it won't
> > release right?
>
> I don't understand your question. Try an example?


sorry for not be clear, actually I am asking which part of the region has a
length of "175533391" in the following line, I think the index/meta-data
info for a region won't take so much memory.

 > *org.apache.hadoop.hbase.regionserver.Store: loaded
> /user/ccenterq/hbase/XXX/1702600912/queries/1289015788537930719,
> isReference=false, sequence id=1389720128, length=**175533391**,
> majorCompaction=true (this is the region data, not the index, right?)*


>
> >        Since we adding more regionserver into our cluster, the chance of
> > OOME is much less, but still there are some(we have only 1GB heap for the
> > regoinserver), I wonder which part of Hbase eats most of the heap
> > memory? The region data takes most, right?
>
> We recommend using at least 4GB on a production system. So what
> occupies data is:
>
> - The memstores (we have a global limit per region server).
> - The block cache (global limit too)
> - All the objects used to manage the regions
>
> The block cache is an LRU, so once blocks of data are evicted they
> occupy memory until garbage collected.
>
> >        I think there should be some rule to cache/write-back the region
> > data, but now it seems that the Hbase doesn't detect the Memory usage
> status
> > thus cannot release the memory in time.
>
> We do in fact. If you grow your block cache too much, it will start
> evicting even more. If you get to the limit of memstore size, hbase
> will force flush them to free space... then that's all garbage
> collected by java.
>
> >
> >
> > On Fri, Mar 5, 2010 at 10:00 AM, Jean-Daniel Cryans <jdcryans@apache.org
> >wrote:
> >
> >> Inline.
> >>
> >> J-D
> >>
> >> On Thu, Mar 4, 2010 at 5:53 PM, steven zhuang
> >> <steven.zhuang.1984@gmail.com> wrote:
> >> > greetings,
> >> >
> >> >             I have a cluster which contains a dozens of PCs with
> 4cores
> >> and
> >> > 4GB ram each, at first there were only 5 regionservers in the cluster,
> >> now
> >> > we have added 18 regionservers into the cluseter.
> >> >             But after reading the log, I have some questions, hope you
> >> guys
> >> > can help me out.
> >> >
> >> >            1. the cluster will reassign the regions around old
> >> > regionservers and newly added regionservers because of auto-balancing,
> >> > right?
> >>
> >> Yep. It's a bit intense and we plan on making it less disruptive.
> >>
> >> >
> >> >            2. I saw a lot of regions OPEN messages, does this means
> the
> >> > regionserver will load the whole regoin into memory or just portion of
> >> it,
> >> > or just the index(?I don't know what is in the index data)?
> >>
> >> Just the region information and files indexes.
> >>
> >> >
> >> >            3. will the memory be released after the loaded region
> opened
> >> is
> >> > not needed anymore, Coz I don't see anything from the log.
> >>
> >> Which memory? The few KBs used to store the region's information? Or
> >> are you talking about the memory taken by regions that moved to other
> >> region servers? In this case it's really just the java garbage
> >> collector that takes care of it.
> >>
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message