Kishore or Lei,

I am wondering if you can comment on my question? I am trying to figure out
if I am understanding the User-Define Rebalancing correctly or is there an
issue with the software.


Thanks,

Rob

On Wed, Oct 10, 2018 at 2:48 PM Rob McKinnon <[email protected]> wrote:

> I was using the "run-helix-controll.sh" script to handle the controller
> and after implementing a custom controller, I am now able to get the
> Rebalancer to be invoked.
>
> I am running into a related issue as the result of my rebalancing doesn't
> seem to have any affect on the cluster. I am assuming that the Rebalance
> functionality affects the external view? In the tutorial example, it looks
> like the currentIdealState preference list is being updated and a variable
> called "assignment" is returned. I did similar things in my implementations
> but I am not seeing any changes to the cluster. 1. Am I understanding this
> correctly? 2. Should I see the changes in the external view?
>
> On Tue, Oct 9, 2018 at 1:02 PM kishore g <[email protected]> wrote:
>
>> Admin.rebalance method won’t invoke user rebalancer
>>
>> The rebalancer is invoked when ever there is a change in the cluster such
>> as nodes added/started/stopped etc.
>>
>> Also look for error message in the log as Lei suggested. Note the
>> controller should have access to the user defined rebalancer class
>>
>> On Tue, Oct 9, 2018 at 9:46 AM Lei Xia <[email protected]> wrote:
>>
>>> Hi, Rob
>>>
>>>   It seems your rebalancer class is not correctly linked into Helix lib,
>>> i.e, Helix can not find your rebalancer class at runtime.   Do you see some
>>> error log from Helix like: ""Exception while invoking custom rebalancer
>>> class:"?
>>>
>>> On Mon, Oct 8, 2018 at 5:37 AM Rob McKinnon <[email protected]>
>>> wrote:
>>>
>>>> I am working through the tutorial on the User-Defined Rebalancing and I
>>>> am not able to get my Rebalancer to be invoked.
>>>>
>>>> Sample Code
>>>> ======
>>>>
>>>> public static void main(String[] args) {
>>>>     ZKHelixAdmin admin = new ZKHelixAdmin(Conf.ZK_ADDRESS);
>>>>
>>>>     IdealState idealState = admin.getResourceIdealState(Conf.CLUSTER_NAME, 
>>>> Conf.RESOURCE_NAME);
>>>>     idealState.setRebalanceMode(IdealState.RebalanceMode.USER_DEFINED);
>>>>     idealState.setRebalancerClassName(MyRebalancer.class.getName());
>>>>     admin.setResourceIdealState(Conf.CLUSTER_NAME, Conf.RESOURCE_NAME, 
>>>> idealState);
>>>>
>>>>
>>>>     admin.rebalance(Conf.CLUSTER_NAME, RESOURCE_NAME, NUM_REPLICAS);
>>>> }
>>>>
>>>> ======
>>>> I was expecting that when calling the "admin.rebalance" method, it
>>>> would invoke "MyRebalance" code but when I run it "MyRebalance" code was
>>>> not invoked.
>>>>
>>>>
>>>> Thanks,
>>>>
>>>> Rob
>>>>
>>>
>>>
>>> --
>>> Lei Xia
>>>
>>

Reply via email to