You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@hbase.apache.org by Akshay Singh <ak...@yahoo.com> on 2013/04/08 00:14:26 UTC

Disabling balancer permanently in HBase

Hi,

I am trying to permanently switch off the balancer in HBase, as my request distribution is not uniform across the data.

I understand that this can be done by, setting balance_switch to false in hbase shell

hbase(main):023:0> balance_switch false

However, value of balance_switch is reset back to true.. every time I restart the HBase cluster (which cannot be avoided in my deployment scenario).

So my question is : Is there a way to permanently/persistently disable the hbase balancer ? I could not find a property for this balance_switch.

I though of one possible solution, which is to set 'hbase.balancer.period' property to '-1'.. but it does not seems to work.

Looking for suggestions.

Thanks,
Akshay

Re: Disabling balancer permanently in HBase

Posted by Akshay Singh <ak...@yahoo.com>.
Thanks all for your suggestions. Since I am using Hbase-0.94, looks like master does not persis the balance state. 

Since I am still benchmarking my cluster... I chose to bump up value of hbase.balancer.period property to a very big number.

Thanks,
Akshay



________________________________
 From: Anoop Sam John <an...@huawei.com>
To: "user@hbase.apache.org" <us...@hbase.apache.org> 
Sent: Monday, 8 April 2013 12:43 AM
Subject: RE: Disabling balancer permanently in HBase
 
HBASE-6260 made the balancer state to be persisted in ZK so that the restart of the Master wont have an issue.  But this is available with 0.95 only.
Just telling FYI

-Anoop-
________________________________________
From: Jean-Marc Spaggiari [jean-marc@spaggiari.org]
Sent: Monday, April 08, 2013 6:05 AM
To: user@hbase.apache.org
Subject: Re: Disabling balancer permanently in HBase

2 other options:
1) Build your own balancer which always returns null and set it with
hbase.master.loadbalancer.class; (*)
2) Give a dummy non-existing class for hbase.master.loadbalancer.class ? (**)

(*) hbase.master.loadbalancer.class is still missing in the
documentation. HBASE-7296 has been opened last year. Might be good if
someone can apply it.
(**) I have not tried that, so I have no idea if this is working or
not. However, if the class given for the load balancer doesn't  exist,
I think it will "simply" log an error on the logs and return. But you
will have to test that.

Finally, maybe we should have something like
hbase.master.loadbalancer.disable that we can setup to TRUE if we want
to totaly disable load balancing? (Even if this is not recommanded).

JM


2013/4/7 Stack <st...@duboce.net>:
> Try setting the hbase.balancer.period to a very high number in you
> hbase-site.xml:
> http://hbase.apache.org/book.html#hbase.master.dns.nameserver
>
> St.Ack
>
>
> On Sun, Apr 7, 2013 at 3:14 PM, Akshay Singh <ak...@yahoo.com> wrote:
>
>> Hi,
>>
>> I am trying to permanently switch off the balancer in HBase, as my request
>> distribution is not uniform across the data.
>>
>> I understand that this can be done by, setting balance_switch to false in
>> hbase shell
>>
>> hbase(main):023:0> balance_switch false
>>
>> However, value of balance_switch is reset back to true.. every time I
>> restart the HBase cluster (which cannot be avoided in my deployment
>> scenario).
>>
>> So my question is : Is there a way to permanently/persistently disable the
>> hbase balancer ? I could not find a property for this balance_switch.
>>
>> I though of one possible solution, which is to set 'hbase.balancer.period'
>> property to '-1'.. but it does not seems to work.
>>
>> Looking for suggestions.
>>
>> Thanks,
>> Akshay

RE: Disabling balancer permanently in HBase

Posted by Anoop Sam John <an...@huawei.com>.
HBASE-6260 made the balancer state to be persisted in ZK so that the restart of the Master wont have an issue.  But this is available with 0.95 only.
Just telling FYI

-Anoop-
________________________________________
From: Jean-Marc Spaggiari [jean-marc@spaggiari.org]
Sent: Monday, April 08, 2013 6:05 AM
To: user@hbase.apache.org
Subject: Re: Disabling balancer permanently in HBase

2 other options:
1) Build your own balancer which always returns null and set it with
hbase.master.loadbalancer.class; (*)
2) Give a dummy non-existing class for hbase.master.loadbalancer.class ? (**)

(*) hbase.master.loadbalancer.class is still missing in the
documentation. HBASE-7296 has been opened last year. Might be good if
someone can apply it.
(**) I have not tried that, so I have no idea if this is working or
not. However, if the class given for the load balancer doesn't  exist,
I think it will "simply" log an error on the logs and return. But you
will have to test that.

Finally, maybe we should have something like
hbase.master.loadbalancer.disable that we can setup to TRUE if we want
to totaly disable load balancing? (Even if this is not recommanded).

JM


2013/4/7 Stack <st...@duboce.net>:
> Try setting the hbase.balancer.period to a very high number in you
> hbase-site.xml:
> http://hbase.apache.org/book.html#hbase.master.dns.nameserver
>
> St.Ack
>
>
> On Sun, Apr 7, 2013 at 3:14 PM, Akshay Singh <ak...@yahoo.com> wrote:
>
>> Hi,
>>
>> I am trying to permanently switch off the balancer in HBase, as my request
>> distribution is not uniform across the data.
>>
>> I understand that this can be done by, setting balance_switch to false in
>> hbase shell
>>
>> hbase(main):023:0> balance_switch false
>>
>> However, value of balance_switch is reset back to true.. every time I
>> restart the HBase cluster (which cannot be avoided in my deployment
>> scenario).
>>
>> So my question is : Is there a way to permanently/persistently disable the
>> hbase balancer ? I could not find a property for this balance_switch.
>>
>> I though of one possible solution, which is to set 'hbase.balancer.period'
>> property to '-1'.. but it does not seems to work.
>>
>> Looking for suggestions.
>>
>> Thanks,
>> Akshay

Re: Disabling balancer permanently in HBase

Posted by Jean-Marc Spaggiari <je...@spaggiari.org>.
2 other options:
1) Build your own balancer which always returns null and set it with
hbase.master.loadbalancer.class; (*)
2) Give a dummy non-existing class for hbase.master.loadbalancer.class ? (**)

(*) hbase.master.loadbalancer.class is still missing in the
documentation. HBASE-7296 has been opened last year. Might be good if
someone can apply it.
(**) I have not tried that, so I have no idea if this is working or
not. However, if the class given for the load balancer doesn't  exist,
I think it will "simply" log an error on the logs and return. But you
will have to test that.

Finally, maybe we should have something like
hbase.master.loadbalancer.disable that we can setup to TRUE if we want
to totaly disable load balancing? (Even if this is not recommanded).

JM


2013/4/7 Stack <st...@duboce.net>:
> Try setting the hbase.balancer.period to a very high number in you
> hbase-site.xml:
> http://hbase.apache.org/book.html#hbase.master.dns.nameserver
>
> St.Ack
>
>
> On Sun, Apr 7, 2013 at 3:14 PM, Akshay Singh <ak...@yahoo.com> wrote:
>
>> Hi,
>>
>> I am trying to permanently switch off the balancer in HBase, as my request
>> distribution is not uniform across the data.
>>
>> I understand that this can be done by, setting balance_switch to false in
>> hbase shell
>>
>> hbase(main):023:0> balance_switch false
>>
>> However, value of balance_switch is reset back to true.. every time I
>> restart the HBase cluster (which cannot be avoided in my deployment
>> scenario).
>>
>> So my question is : Is there a way to permanently/persistently disable the
>> hbase balancer ? I could not find a property for this balance_switch.
>>
>> I though of one possible solution, which is to set 'hbase.balancer.period'
>> property to '-1'.. but it does not seems to work.
>>
>> Looking for suggestions.
>>
>> Thanks,
>> Akshay

Re: Disabling balancer permanently in HBase

Posted by Stack <st...@duboce.net>.
Try setting the hbase.balancer.period to a very high number in you
hbase-site.xml:
http://hbase.apache.org/book.html#hbase.master.dns.nameserver

St.Ack


On Sun, Apr 7, 2013 at 3:14 PM, Akshay Singh <ak...@yahoo.com> wrote:

> Hi,
>
> I am trying to permanently switch off the balancer in HBase, as my request
> distribution is not uniform across the data.
>
> I understand that this can be done by, setting balance_switch to false in
> hbase shell
>
> hbase(main):023:0> balance_switch false
>
> However, value of balance_switch is reset back to true.. every time I
> restart the HBase cluster (which cannot be avoided in my deployment
> scenario).
>
> So my question is : Is there a way to permanently/persistently disable the
> hbase balancer ? I could not find a property for this balance_switch.
>
> I though of one possible solution, which is to set 'hbase.balancer.period'
> property to '-1'.. but it does not seems to work.
>
> Looking for suggestions.
>
> Thanks,
> Akshay