So, looks like in 0.7, the way to correctly delete topics from the brokers and zookeeper is as follows -
1. Shutdown producers, consumers and brokers. 2. Delete the topic logs from the brokers 3. Delete the /brokers/topics/<topic> nodes from zookeeper 4. Restart the brokers 5. Restart producers and consumers. Thanks, Neha On Mon, Mar 18, 2013 at 9:31 AM, Jun Rao <jun...@gmail.com> wrote: > Jason, > > This is mainly a problem that we don't have a formal way of deleting a > topic in 0.7, which we are trying to fix in 0.8. > > The extra watchers on those deleted topics are likely registered by the > producers. They should be gone once /brokers/topics/deletedtopic are > removed from ZK. > > You probably don't need to clean /consumers/<appname>/owners. > > Thanks, > > Jun > > > On Sun, Mar 17, 2013 at 11:11 PM, Jason Rosenberg <j...@squareup.com> > wrote: > > > Jun, > > > > There are indeed no nodes under /brokers/topics/deletedtopic > > > > Also, do I need to remove the deleted apps from the > > /consumers/<appname>/owners path? > > > > So, should this be considered a bug, or not? Essentially, each broker > > knows what topics it has, but the info seems to have not propagated to zk > > at all? Is that right? > > > > Although from the telnet interface, the removed topics don't show up > under > > a 'dump' command, but they do under wchc, etc. What's that about? > > > > Should the original procedure have been to: (1) stop all consumers, then > > (2) remove the topic files on the brokers, then (3) restart the brokers, > > then (4) restart the consumers? > > > > The consumers have been up and down since the topic files were removed, > but > > just not ever at the same time the brokers were down.... > > > > Jason > > > > > > On Sun, Mar 17, 2013 at 9:08 AM, Jun Rao <jun...@gmail.com> wrote: > > > > > Jason, > > > > > > Use zkCli.sh to see if there is any child node in ZK under > > > /brokers/topics/deletedtopic. You should see none since you already > > removed > > > those topics from brokers' log. If so, you can manually remove those > > paths > > > in ZK using zkCli.sh (stop the consumers first). After the consumers > > > restart, you should not see the the deleted topics in the log of the > > > consumers any more. > > > > > > 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>) > > > > > > Thanks, > > > > > > Jun > > > > > > On Sat, Mar 16, 2013 at 11:08 PM, Jason Rosenberg <j...@squareup.com> > > > wrote: > > > > > > > Hi Jun, yes, we're using zk-based producers. Producers have all been > > > > restarted (they get cycled many times a day as well). > > > > > > > > The specific producers that generated all those bogus topics have > > > > definitely been restarted, etc. > > > > > > > > Using zkCli.sh, I do see all the deleted topics, e.g.: > > > > > > > > [zk: localhost:26101(CONNECTED) 32] ls /brokers/topics > > > > [<1000's of deleted topics>,<also all the remaining valid topics>] > > > > > > > > I see also all the deleted topics under /consumers/<appname>/owners/ > > > > > > > > Jason > > > > > > > > On Fri, Mar 15, 2013 at 9:48 PM, Jun Rao <jun...@gmail.com> wrote: > > > > > > > > > Are you using ZK-based producer? If so, those watches could be left > > by > > > > the > > > > > producers if they haven't been restarted. Could you also use > zkCli.sh > > > to > > > > > see if deleted topics are there in ZK? > > > > > > > > > > Thanks, > > > > > > > > > > Jun > > > > > > > > > > On Fri, Mar 15, 2013 at 2:19 PM, Jason Rosenberg <j...@squareup.com > > > > > > wrote: > > > > > > > > > > > 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 <jun...@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 < > > j...@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.narkh...@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 < > > > > j...@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.narkh...@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 < > > > > > > j...@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.narkh...@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 < > > > > > > > > j...@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 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >