hbase-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Segel <michael_se...@hotmail.com>
Subject Re: Right value for hbase.rpc.timeout
Date Tue, 05 May 2015 20:52:25 GMT
Silly question… 
How much memory do you have on your machine and how much do you allocate to HBase? 
More to the point, how much memory is allocated to your memstore?

Suppose you have maxfilesize set to 100GB and your memstore is only 1GB in size. (round numbers
to make the math easier…) 

If we don’t have any flushes and only flush when the memstore is full, that would mean you
would have ~100 or so HFiles for the region. 

How does that impact performance? 

Or am I missing something? 

> On May 5, 2015, at 3:01 AM, Dejan Menges <dejan.menges@gmail.com> wrote:
> 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

The opinions expressed here are mine, while they may reflect a cognitive thought, that is
purely accidental. 
Use at your own risk. 
Michael Segel
michael_segel (AT) hotmail.com

View raw message