Here's an example with four partitions which should be pretty easily
extended to include up to partition 49:
{
  "version": 1,
  "partitions": [
    {
      "topic": "__consumer_offsets",
      "partition": 0,
      "replicas": [ 0, 1 ]
    },
    {
      "topic": "__consumer_offsets",
      "partition": 1,
      "replicas": [ 1, 2 ]
    },
    {
      "topic": "__consumer_offsets",
      "partition": 2,
      "replicas": [ 2, 3 ]
    },
    {
      "topic": "__consumer_offsets",
      "partition": 3,
      "replicas": [ 3, 4 ]
    },
    {
      "topic": "__consumer_offsets",
      "partition": 4,
      "replicas": [ 4, 0 ]
    }
  ]
}


Andrew

On Fri, Dec 16, 2022 at 6:54 PM Chris Peart <ch...@peart.me.uk> wrote:

> Hi Andrew,
> Would you be able to provide an example of the json with all the
> partitions in please, I tried this on our dev cluster but it didn’t work.
> Many Thanks,
> Chris
>
> > On 16 Dec 2022, at 9:03 pm, Andrew Grant <agr...@confluent.io.invalid>
> wrote:
> >
> > Hey Chris,
> >
> > You'd need to do the same for all partitions. I just showed partition 49
> as
> > an example - I picked 49 because when I ran a describe it showed up at
> the
> > bottom of my terminal :) You could do all the partitions in the same
> > reassignment. In that JSON I just put partition 49 but you could add all
> > the other partitions in it.
> >
> > Yeah I'm pretty sure you'd do basically the same for
> __transaction_state. I
> > havent tested that myself locally so might be worth doing so on your end.
> >
> > Hope that helps a bit.
> >
> > Andrew
> >
> >> On Fri, Dec 16, 2022 at 11:41 AM Chris Peart <ch...@peart.me.uk> wrote:
> >>
> >> Hi Andrew,
> >>
> >> Thanks for the speedy reply, so do I just need to do this for partition
> >> 49? What about partitions 0-48, will these be covered by reassigning
> >> partition 49.
> >>
> >> Do I need to do this for the __transaction_state topics too?
> >>
> >> Many thanks,
> >> Chris
> >>
> >>> On 16 Dec 2022, at 4:17 pm, Andrew Grant <agr...@confluent.io.invalid>
> >> wrote:
> >>>
> >>> Hey Chris,
> >>> I think you should be able to use the reassignment tool to add
> replicas.
> >>> You should be able to do something similar to migrate the partitions
> away
> >>> from the old brokers and onto the new ones and also increase the
> >>> replication factor at the same time. I tested just increasing the
> >>> replication factor with the following commands:
> >>>
> >>> kafka % ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic
> >>> __consumer_offsets --describe | grep 'Partition: 49'
> >>> Topic: __consumer_offsets Partition: 49 Leader: 1 Replicas: 1 Isr: 1
> >>> Offline:
> >>>
> >>> kafka % cat reassignment.json
> >>> {
> >>> "version": 1,
> >>> "partitions": [
> >>>   {
> >>>     "topic": "__consumer_offsets",
> >>>     "partition": 49,
> >>>     "replicas": [ 1, 0 ]
> >>>   }
> >>> ]
> >>> }
> >>>
> >>> kafka % ./bin/kafka-reassign-partitions.sh --bootstrap-server
> >>> localhost:9092 --reassignment-json-file reassignment.json --execute
> >>> Current partition replica assignment
> >>>
> >>>
> >>
> {"version":1,"partitions":[{"topic":"__consumer_offsets","partition":49,"replicas":[1],"log_dirs":["any"]}]}
> >>>
> >>> Save this to use as the --reassignment-json-file option during rollback
> >>> Successfully started partition reassignment for __consumer_offsets-49
> >>> kafka % ./bin/kafka-topics.sh --bootstrap-server localhost:9092 --topic
> >>> __consumer_offsets --describe | grep 'Partition: 49'
> >>> Topic: __consumer_offsets Partition: 49 Leader: 1 Replicas: 1,0 Isr:
> 1,0
> >>> Offline:
> >>>
> >>>
> >>> Andrew
> >>>
> >>>
> >>>> On Fri, Dec 16, 2022 at 9:46 AM Chris Peart <ch...@peart.me.uk>
> wrote:
> >>>>
> >>>>
> >>>>
> >>>> Hi,
> >>>>
> >>>> We have a kafka production cluster that was setup with the defaults
> for
> >>>> __consumer_offsets & __transaction_state topics.
> >>>>
> >>>> Is there a way to increase the replication factor from 1 to 3 using
> the
> >>>> kafka-reassign-partitions tool?
> >>>>
> >>>> We are also replacing our 4 brokers with new brokers, this has been
> >>>> completed so we now have an 8 broker cluster and have migrated all the
> >>>> topics to the new brokers using the reassign tool except for the
> >>>> __consumer_offsets & __transaction_state topics.
> >>>>
> >>>> We stopped kafka on the old brokers today but all out consumers failed
> >>>> due to the __consumer_offsets & __transaction_state topics residing on
> >>>> the old brokers.
> >>>>
> >>>> I'm thinking we should could move the __consumer_offsets &
> >>>> __transaction_state topics to the now brokers using the reassign
> tool, i
> >>>> have done this on our dev platform and all is good. If you think this
> is
> >>>> good idea we can then can stop kafka on the old nodes and then work on
> >>>> the replication factoron the new nodes?
> >>>>
> >>>> The problem i have is how do we change the replication factor to 3
> after
> >>>> we migrate the __consumer_offsets & __transaction_state topics?
> >>>>
> >>>> Thanks in advance.
> >>>>
> >>>> Chris
> >>
> >>
>
>

Reply via email to