Working with Kafka topics
Also available as:
PDF

Creating a Kafka Topic

As described in Apache Kafka Concepts, Kafka maintains feeds of messages in categories called topics. Producers write data to topics and consumers read from topics. Since Kafka is a distributed system, topics are partitioned and replicated across multiple nodes. Kafka treats each topic partition as a log (an ordered set of messages). Each message in a partition is assigned a unique offset.

Each topic has a user-defined category (or feed name), to which messages are published.

To create a Kafka topic, run kafka-topics.sh and specify topic name, replication factor, and other attributes:

/bin/kafka-topics.sh --create \
    --zookeeper <hostname>:<port> \
    --topic <topic-name> \
    --partitions <number-of-partitions> \
    --replication-factor <number-of-replicating-servers>

The following example creates a topic named "test", with one partition and one replica:

bin/kafka-topics.sh --create \
    --zookeeper localhost:2181 \
    --replication-factor 1 \
    --partitions 1 \
    --topic test

To view the topic, run the list topic command:

> bin/kafka-topics.sh --list --zookeeper localhost:2181
test

To create topics on a cluster with Kerberos enabled, see Creating A Kafka Topic.

The auto.create.topics.enable property, when set to true, automatically creates topics when applications attempt to produce, consume, or fetch metadata for a nonexistent topic. For more information, see Kafka Broker Settings.