One other clue, is that although those topics still show up under
/brokers/topics/<topicname>/ they contain empty sub-nodes.....So zk knows
they don't exist on any broker.  So maybe that's the issue.  Brokers are
successfully removing themselves as serving a topic, but the topic itself
remains.  The consumers then just see the topics (even with no brokers
listed) and continue to watch the topic.

Jason

On Mon, Mar 18, 2013 at 1:37 PM, Jason Rosenberg <j...@squareup.com> wrote:

> Thanks Jun,
>
> I have nothing listed under /brokers/topics/deletedtopic, etc....so that
> doesn't appear to be the issue.
>
> I will try removing now the unwanted topics under /brokers/topics/.
>
> Jason
>
>
> 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
>> > > > > > > > > > > > > >
>> > > > > > > > > > > > >
>> > > > > > > > > > > >
>> > > > > > > > > > >
>> > > > > > > > > >
>> > > > > > > > >
>> > > > > > > >
>> > > > > > >
>> > > > > >
>> > > > >
>> > > >
>> > >
>> >
>>
>
>

Reply via email to