контроле вариант убрать реплики с брокера, но при этом не трогать распределение лидеров на других брокерах?
Сегодня хотел удалить брокер, но вместе с передвижением реплик с него, круиз контроль начинает менять лидеров и на не относящихся к этому брокеру партициях, что очень не желательный эффект в данном случае
ненужен больше крузил контрол
Да, запускаешь Remove Brokers и целях выбираешь только Rack Aware Distribution, что бы CC не пытался выполнять балансировок, а только проверил соответствие на распределение по rack.id
Пробовал, но не помогает. Сейчас ещё раз попробовал: Remove brokers -> выбираю 1 нужный (id=17) Show All Options -> выбираю Rack Aware Distribution + Skip Hard Goal Check + Throttle Removed Broker + Concurrent Partition Movements Per Broker=1 + Concurrent Leader Movements=1 Запускаю, Executor показывает в плане в том числе передвижения лидеров между другими брокерами, например Old Replica New Replica 12,14,20 12,18,20 Но, спасибо, что укрепил веру в то, что это какое-то нестандартное поведение. Сейчас свежим взглядом просматривал - обратил внимание, во всех остальных, где нет брокера 17, встречается брокер 14. И он же почему-то всплыл в выводе планировщика "excludedBrokersForReplicaMove": [ 17, 14 ], Хотя выбран не был (как в UI, так и в дёрнутом урле СС): .../remove_broker?dryrun=false&brokerid=17&goals=RackAwareGoal,RackAwareDistributionGoal,ReplicaCapacityGoal,DiskCapacityGoal,DiskUsageDistributionGoal,TopicReplicaDistributionGoal,PotentialNwOutGoal&skip_hard_goal_check=true&concurrent_partition_movements_per_broker=1&concurrent_leader_movements=1&json=true Ушёл копать 🙂 P.S. Это случаем не та самая диверсия? 😆
Тут основная мысль кроется в том, что бы выдать CC такие цели, которые у него уже достигнуты и ему необходимо будет только раскидать партиции с удаляемого брокера. А базовые hard-goals какие обычно испольуются? Попробуй именно их обозначить и выставь удаление
Конкретные цели я и вчера пробовал выставлять - не помогало. А вот почему он неявно подкидывает 14 брокер - я не знаю. В логе СС тоже пришедшая команды выглядит адекватно, т.е. без брокера id=14: _requestUrl=POST /kafkacruisecontrol/remove_broker,_queryParams={brokerid=[17], dryrun=[false], skip_hard_goal_check=[t rue], concurrent_partition_movements_per_broker=[1], json=[true], concurrent_leader_movements=[1], goals=[RackAwareDistributionGoal]}} А вот результат вычисления плана включает: calculation finishes, result: {"summary":{"numIntraBrokerReplicaMovements":0,"numReplicaMovements":3591,"onDemandBalancednessScoreAfter":100.0,"intraBrokerDataToMoveMB":0,"monitoredPartitionsPercentage":100.0,"provisionRecommendation":"","excludedBrokersForReplicaMove":[17,14], Брокер жив, нагрузка вроде была плюс-минус как на других. Но хоть зацепка какая-то есть. СС не так часто пользуемся, так что есть повод копнуть 😄
У него стэйт с прошлых попыток запуска мог остаться и он пытается его докатить. Было такое)) Так как лечить надо было срочно, лечил просто рестартом. Если чего интересное найдёшь черкани, можно в личку)
Обсуждают сегодня