hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dejan Menges <dejan.men...@gmail.com>
Subject Re: Right value for hbase.rpc.timeout
Date Tue, 05 May 2015 08:01:52 GMT
Hi Lars,

Regarding region sizes - it was kinda conclusion we got after reading bunch
of articles trying to figure out what optimal region and memstore size for
us would be in the process of migrating from 'old' cluster which was under
very high load to this new and more performant one. Trying to find those
articles, but not something I can quickly find again in five minutes, but
clearly remember mentioning 100G as top limit, and then manually splitting
if you see hotspotting or issues like that. So in the process, we set
memstore to 256M and max region size 75G.

Speaking about that, in table that was 'problematic' we actually didn't
have any region bigger than 50G. Checking region sizes, I saw that, out of
250 regions there are ~20 between 40 and 50G, there were also ~30 regions
between 20 and 40G, and all other were not bigger than 15G. I correlated it
in one moment with number of mappers that fail, and when I started
splitting manually biggest regions I saw that failing mappers are
decreasing. Currently, same table don't have regions bigger than 30G, and
all is good. This table is 900G in size.

On another side, we have another table - 7.1T - where I see currently
average region size of 40G, but usage pattern for this table is different,
and that's why we never hit issue like this.

And yeah, this cluster is configured for 600T of data, currently around 60%
is used.

Some cluster specific stuff I wouldn't put to the list, but I can send it
directly to you if you are interested in it. Also every region server have
32G heap size and is collocated together with DataNode and NodeManager.
Average off peak load is 20-25k requests per second, when it's really
utilised it goes to 700k.

So what would be your preferred value for region size? To leave it as
default 10G, or eventually double it to 20G (what would in our case trigger
region splitting on other tables and bigger number of regions)?

On Mon, May 4, 2015 at 9:03 PM lars hofhansl <larsh@apache.org> wrote:

> Why do you have regions that large? The 0.92 default was 1G (admittedly,
> that was much too small), the 0.98 default is 10G, which should be good in
> most cases.Mappers divide their work based on regions, so very large region
> lead to more uneven execution time, unless you truly have a a very large
> amount of data.Compactions are in units of regions, etc.
>
> Can I ask how much data you have overall (i.e. how many of these 75G
> regions you have)?
>
> Thanks.
>
> -- Lars
>       From: Dejan Menges <dejan.menges@gmail.com>
>  To: "user@hbase.apache.org" <user@hbase.apache.org>
>  Sent: Monday, May 4, 2015 1:31 AM
>  Subject: Re: Right value for hbase.rpc.timeout
>
> Hi Ted,
>
> Max filesize for region is set to 75G in our case. Regarding split policy
> we use most likely ConstantSizeRegionSplitPolicy
> <
> http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/regionserver/ConstantSizeRegionSplitPolicy.html
> >
> (it's
> 0.98.0 with bunch of patches and that should be default one).
>
> Also, regarding link you sent me in 98.3 - I can not find anywhere what's
> default value for hbase.regionserver.lease.period? Is this parameter still
> called like this?
>
>
>
> On Thu, Apr 30, 2015 at 11:27 PM Ted Yu <yuzhihong@gmail.com> wrote:
>
> > Please take a look at 98.3 under
> > http://hbase.apache.org/book.html#trouble.client
> >
> > BTW what's the value for hbase.hregion.max.filesize ?
> > Which split policy do you use ?
> >
> > Cheers
> >
> > On Thu, Apr 30, 2015 at 6:59 AM, Dejan Menges <dejan.menges@gmail.com>
> > wrote:
> >
> > > Basically how I came to this question - this happened super rarely, and
> > we
> > > narrowed it down to hotspotting. Map was timing out on three regions
> > which
> > > were 4-5 times bigger then other regions for the same table, and region
> > > split fixed this.
> > >
> > > However, was just thinking about if there are maybe some
> recommendations
> > or
> > > something about this, as it's also super hard to reproduce again same
> > > situation to retest it.
> > >
> > > On Thu, Apr 30, 2015 at 3:56 PM Michael Segel <
> michael_segel@hotmail.com
> > >
> > > wrote:
> > >
> > > > There is no single ‘right’ value.
> > > >
> > > > As you pointed out… some of your Mapper.map() iterations are taking
> > > longer
> > > > than 60 seconds.
> > > >
> > > > The first thing is to determine why that happens.  (It could be
> normal,
> > > or
> > > > it could be bad code on your developers part. We don’t know.)
> > > >
> > > > The other thing is that if you determine that your code is perfect
> and
> > it
> > > > does what you want it to do… and its a major part of your use case…
> you
> > > > then increase your timeouts to 120 seconds.
> > > >
> > > > The reason why its a tough issue is that we don’t know what hardware
> > you
> > > > are using. How many nodes… code quality.. etc … too many factors.
> > > >
> > > >
> > > > > On Apr 30, 2015, at 6:51 AM, Dejan Menges <dejan.menges@gmail.com>
> > > > wrote:
> > > > >
> > > > > Hi,
> > > > >
> > > > > What's the best practice to calculate this value for your cluster,
> if
> > > > there
> > > > > is some?
> > > > >
> > > > > In some situations we saw that some maps are taking more than
> default
> > > 60
> > > > > seconds which was failing specific map job (as if it failed once,
> it
> > > > failed
> > > > > also every other time by number of configured retries).
> > > > >
> > > > > I would like to tune RPC parameters a bit, but googling and looking
> > > into
> > > > > HBase Book doesn't tell me how to calculate right values, and what
> > else
> > > > to
> > > > > take a look beside hbase.rpc.timeout.
> > > > >
> > > > > Thanks a lot,
> > > > > Dejan
> > > >
> > > >
> > >
> >
>
>

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