You should definitely use the same id if you still have the data - it makes
life so much better.

There are 3 common ways to do it:
1. Use the last 3 digits of the IP as the broker ID (assuming Docker gives
you the same IP when the container relaunches)
2. Use a deployment manager that can register the brokers in an external DB
to make sure the same broker always gets the same ID
3. Use Kafka 0.9.0 where Kafka can auto-generate the broker name and then
store it in a data file, so if you still have the files, you have the same
broker ID

On Tue, Nov 24, 2015 at 2:58 PM, SpikyHawk SpikyHawk <
listas.luaf...@gmail.com> wrote:

> Hi there.
>
> I have a similar question but is related to this scenario.
>
> Docker server running in EC2 instance with an EBS volume attached to it.
>
> Kafka running in a Docker container in this host with server.properties
> "autogenerated" using a bootstrap script.
> Part of the bootstrapping process is to generate a broker id using some
> property of the host like ip or of the docker container like docker
> hostname and update server.properties
>
> Docker container running Kafka mounts the host attached EBS volume  to use
> it as log dir.
>
> case 1:
> If container dies and is re-launched on same host, then it will generate a
> new broker id but will "see" the same log dir, so data in this dir was
> technically generated by a broker with a different id. is this the same
> scenario like trying to rename a broker id? Should I try to use same broker
> id if this broker will use same log dir with data in it?
>
> case 2:
> If entire host dies or crashes or is terminated by AWS, then can I use the
> same EBS with another host where a new kafka container will run with a
> different broker id? I think at the end this is same scenario than case 1
> :)
>
> How do you handle this situation where a broker or host may disappear but
> log data is still there? Should always be discarded along with the broker
> (id) that generated it?
>
> Regards
> Luciano
>
>
> On Fri, Nov 6, 2015 at 7:24 PM, Todd Palino <tpal...@gmail.com> wrote:
>
> > I’m not quite sure why you would need to do this - the broker IDs are not
> > significant outside of the internal metadata. But this is what you would
> > have to do for each move (assuming you are running with at least
> > replication factor 2):
> >
> > 1) Shut down the broker
> > 2) Clear its partition data
> > 3) Reconfigure the broker to the new ID
> > 4) Restart the broker
> > 5) Issue a partition reassignment to reassign all of broker 1’s
> partitions
> > to broker 0
> > 6) Wait for the broker to replicate all it’s partitions from other
> members
> > of the cluster
> >
> > That’s a lot of moving data around, just to renumber. You can’t just
> issue
> > the reassignment while the broker is down, and not delete the partitions,
> > because the ID number 0 is unknown, so the reassignment will fail (the
> > broker is not online). If you wanted to shut the entire cluster down you
> > could, in theory, walk through the Zookeeper tree manually changing all
> the
> > replica information. That assumes you can shut the whole cluster down
> for a
> > while.
> >
> > -Todd
> >
> >
> >
> > On Fri, Nov 6, 2015 at 1:23 PM, Arathi Maddula <amadd...@boardreader.com
> >
> > wrote:
> >
> > > Hi,
> > > Is it possible to change the broker.ids property for a node belonging
> to
> > a
> > > Kafka cluster? For example, currently if I  have brokers with ids
> 1,2,3.
> > If
> > > I want to stop broker 1,  can I change broker.id to 0 (with current
> id =
> > > 1) in server.properties and meta.properties files and then restart
> broker
> > > 1. Can I repeat this for brokers 2 and 3 as well?
> > >
> > > Thanks,
> > > Arathi
> > >
> > >
> >
>

Reply via email to