kafka-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Rosenberg <...@squareup.com>
Subject Re: auto-delete empty, old topics?
Date Fri, 15 Mar 2013 21:19:04 GMT
Jun,

So, I connected to zookeeper just using telnet, and using the 4 letter
commands.

If I do a dump:

I do not see anything but valid topics, and valid consumer/owners mappings.

If I check watches, I see all the 1000's of bogus topics, e.c.:

wchc:
....
/brokers/topics/<obsolete-topic>
....

or

wchp
....
/brokers/topics/<obsolete-topic>.
0x383d6fe1b83f0008
0x383d6fe1b83f0009
0x7c3d6f9020d00041
0x833d6fe2826e0000
0x383d6fe1b83f000a
....

The kafka and zookeeper servers, as well as the consumer apps, are rolled
several times a day, automatically.

I'm not sure how to remove the watches, is that what I need to do?

Since this is a highly available system, can I bring down each zk server 1
at a time, and clear the bogus topics (or watches)?  How do I do this?

Jason



On Fri, Mar 15, 2013 at 8:17 AM, Jun Rao <junrao@gmail.com> wrote:

> Could you check if the following path for a deleted topic exists in ZK? It
> should have no children.
>
> /brokers/topics/[topic]
>
> If this is the case, try manually removing those paths from ZK (when the
> brokers and the consumers are down).
>
> Thanks,
>
> Jun
>
> On Thu, Mar 14, 2013 at 2:03 PM, Jason Rosenberg <jbr@squareup.com> wrote:
>
> > Hi Neha,
> >
> > So I did this, but I still see the full list of topics (most of which
> have
> > been deleted), in the consumer logs, e.g.:
> >
> > consumer.ZookeeperConsumerConnector -
> > samsa-consumer-graphite_alg2.sjc1.square-1363290849309-2816c1cb Topics to
> > consume = List(<a bazillion topics, most of which have been deleted
> listed
> > here>)
> >
> > I select topics using the white list topic selector (using a wild-card
> > pattern, etc.).
> >
> > Thoughts?
> >
> > Does zookeeper keep separate info for the consumer, that needs to be
> > removed?
> >
> > Jason
> >
> > On Thu, Mar 7, 2013 at 10:20 PM, Neha Narkhede <neha.narkhede@gmail.com
> > >wrote:
> >
> > > In Kafka 0.7.2, data log directory delete and then rolling restart will
> > > work to get rid of the topic completely from zookeeper as well as the
> > > broker.
> > > This is because the broker registers the topics and partitions from its
> > > data directory into zookeeper on startup.
> > >
> > > Thanks,
> > > Neha
> > >
> > >
> > > On Thu, Mar 7, 2013 at 9:13 PM, Jason Rosenberg <jbr@squareup.com>
> > wrote:
> > >
> > > > Thanks Neha,
> > > >
> > > > So are you saying that on 0.7.2, to delete a topic I need only remove
> > > it's
> > > > data log directory from each broker, and the restart the brokers?  Is
> > it
> > > ok
> > > > if it's a rolling restart?
> > > >
> > > > For some reason I thought I also had to do something on zookeeper
> > servers
> > > > too, to remove the topics.  Is that not true?
> > > >
> > > > Jason
> > > >
> > > > On Wed, Mar 6, 2013 at 6:07 PM, Neha Narkhede <
> neha.narkhede@gmail.com
> > > > >wrote:
> > > >
> > > > > >> The topics get automagically created if they don't exist.
 Will
> > > > > that still exist in 0.8?
> > > > >
> > > > > In 0.8, this is controlled by the auto.create.topics.enable config
> on
> > > the
> > > > > brokers. If this is set to true, topics will be created when a
> topic
> > > > > metadata request is sent for a new topic. This feature is provided
> to
> > > aid
> > > > > with the 0.7->0.8 migration tool and the mirror maker tools. These
> > > tools
> > > > > copy data for almost all topics from one cluster to the other, so
> > auto
> > > > > creating topics makes it much easier to migrate data between
> > clusters.
> > > > >
> > > > > >> What's the procedure for deleting topics in kafka 0.7.2?
> > > > >
> > > > > There is no official way to delete a topic. You have to delete the
> > data
> > > > > directory and bounce the brokers to take note of that.
> > > > >
> > > > > Thanks,
> > > > > Neha
> > > > >
> > > > >
> > > > > On Wed, Mar 6, 2013 at 4:20 PM, Jason Rosenberg <jbr@squareup.com>
> > > > wrote:
> > > > >
> > > > > > Thanks Neha,
> > > > > >
> > > > > > I added a comment to that ticket.
> > > > > >
> > > > > > Another question, I'm not sure if the behavior is different
in
> 0.8
> > > from
> > > > > > 0.7.  But currently, I'm not predeclaring topics, before sending
> > > > messages
> > > > > > to topics.  The topics get automagically created if they don't
> > exist.
> > > > >  Will
> > > > > > that still exist in 0.8?  If so, it should also be automatic
> > (using a
> > > > > > default expiration for all such topics), that they automagically
> go
> > > > away
> > > > > > after no longer being in use.
> > > > > >
> > > > > > What's the procedure for deleting topics in kafka 0.7.2?
> > > > > >
> > > > > > Jason
> > > > > >
> > > > > > On Wed, Mar 6, 2013 at 3:38 PM, Neha Narkhede <
> > > neha.narkhede@gmail.com
> > > > > > >wrote:
> > > > > >
> > > > > > > We plan to include support for deleting topics before the
> > official
> > > > > > release.
> > > > > > > The JIRA tracking this feature is
> > > > > > > https://issues.apache.org/jira/browse/KAFKA-330
> > > > > > >
> > > > > > > This is mainly an admin tool and is proposed to be run
> manually.
> > I
> > > > > think
> > > > > > > your suggestion is to set some sort of expiration time
on
> topics
> > so
> > > > > when
> > > > > > > all data gets garbage collected and the expiration time
lapses,
> > the
> > > > > topic
> > > > > > > is automatically deleted.
> > > > > > >
> > > > > > > For this expiration to work, we need some mechanism of
knowing
> > the
> > > > size
> > > > > > of
> > > > > > > the data logs for that topic on all brokers. And only when
its
> > > empty
> > > > > for
> > > > > > > all partitions of that topic, we delete it. This requires
some
> > API
> > > > that
> > > > > > > will expose the data size of a topic on a broker, which
we
> don't
> > > have
> > > > > > right
> > > > > > > now. It might be worth thinking about it. Do you mind posting
> > your
> > > > > > > suggestions for this tool on that JIRA ?
> > > > > > >
> > > > > > > Thanks,
> > > > > > > Neha
> > > > > > >
> > > > > > >
> > > > > > > On Wed, Mar 6, 2013 at 3:15 PM, Jason Rosenberg <
> > jbr@squareup.com>
> > > > > > wrote:
> > > > > > >
> > > > > > > > I suspect this is not currently supported, but it
seems to be
> > for
> > > > us
> > > > > a
> > > > > > > real
> > > > > > > > use case.
> > > > > > > >
> > > > > > > > If we have a topic that is no longer receiving messages,
and
> > all
> > > > > > messages
> > > > > > > > have been removed from the brokers, after the
> > log_retention_hours
> > > > has
> > > > > > > > expired, I'd love to have it then automatically remove
the
> > topic
> > > > from
> > > > > > > > kafka.
> > > > > > > >
> > > > > > > > If subsequently a new message arrives for that topic,
it
> could
> > > just
> > > > > > > > recreate the topic as originally, and continue on.
> > > > > > > >
> > > > > > > > Is this easy to implement?
> > > > > > > > Has it been requested?
> > > > > > > > Does it make sense?
> > > > > > > > Should I file a jira?
> > > > > > > >
> > > > > > > > Currently, we had a test client that inadvertently
created
> > 1000's
> > > > of
> > > > > > > > topics.  The job of deleting all these appears to
not be a
> > > > cumbersome
> > > > > > > > manual process (are there any quick links to the recommended
> > way
> > > > for
> > > > > > > doing
> > > > > > > > this?).
> > > > > > > >
> > > > > > > > I am using 0.7.2, but will eventually upgrade to 0.8,
once
> it's
> > > > > > released
> > > > > > > to
> > > > > > > > beta....
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > >
> > > > > > > > Jason
> > > > > > > >
> > > > > > >
> > > > > >
> > > > >
> > > >
> > >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message