Kafka Setting Up
Setting Up Kafka
Linux
- Make sure you are navigated inside the bin directory. ## Start Zookeeper and Kafka Broker - Start up the Zookeeper.
./zookeeper-server-start.sh ../config/zookeeper.properties
listeners=PLAINTEXT://localhost:9092
auto.create.topics.enable=false
./kafka-server-start.sh ../config/server.properties
./kafka-topics.sh --create --topic test-topic -zookeeper localhost:2181 --replication-factor 1 --partitions 4
./kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic
./kafka-console-producer.sh --broker-list localhost:9092 --topic test-topic --property "key.separator=-" --property "parse.key=true"
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --from-beginning -property "key.separator= - " --property "print.key=true"
./kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test-topic --group <group-name>
Windows
- Make sure you are inside the **bin/windows** directory. ## Start Zookeeper and Kafka Broker - Start up the Zookeeper.
zookeeper-server-start.bat ..\..\config\zookeeper.properties
kafka-server-start.bat ..\..\config\server.properties
kafka-topics.bat --create --topic test-topic -zookeeper localhost:2181 --replication-factor 1 --partitions 4
kafka-console-producer.bat --broker-list localhost:9092 --topic test-topic
kafka-console-producer.bat --broker-list localhost:9092 --topic test-topic --property "key.separator=-" --property "parse.key=true"
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test-topic --from-beginning
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test-topic --from-beginning -property "key.separator= - " --property "print.key=true"
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test-topic --group <group-name>
Setting Up Multiple Kafka Brokers
-
The first step is to add a new server.properties.
-
We need to modify three properties to start up a multi broker set up.
broker.id=<unique-broker-d>
listeners=PLAINTEXT://localhost:<unique-port>
log.dirs=/tmp/<unique-kafka-folder>
auto.create.topics.enable=false
- Example config will be like below.
broker.id=1
listeners=PLAINTEXT://localhost:9093
log.dirs=/tmp/kafka-logs-1
auto.create.topics.enable=false
Starting up the new Broker
- Provide the new server.properties thats added.
./kafka-server-start.sh ../config/server-1.properties
./kafka-server-start.sh ../config/server-2.properties
Advanced Kafka CLI operations:
Linux
## List the topics in a cluster
./kafka-topics.sh --zookeeper localhost:2181 --list
./kafka-topics.sh --zookeeper localhost:2181 --describe
./kafka-topics.sh --zookeeper localhost:2181 --describe --topic <topic-name>
./kafka-topics.sh --alter --zookeeper localhost:2181 --topic library-events --config min.insync.replicas=2
./kafka-topics.sh --zookeeper localhost:2181 --delete --topic test-topic
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
./kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group console-consumer-27773
./kafka-run-class.sh kafka.tools.DumpLogSegments --deep-iteration --files /tmp/kafka-logs/test-topic-0/00000000000000000000.log
./kafka-configs.sh --alter --zookeeper localhost:2181 --entity-type topics --entity-name test-topic --add-config min.insync.replicas=2
Windows
- Make sure you are inside the **bin/windows** directory. ## List the topics in a cluster
kafka-topics.bat --zookeeper localhost:2181 --list
kafka-topics.bat --zookeeper localhost:2181 --describe
kafka-topics.bat --zookeeper localhost:2181 --describe --topic <topic-name>
kafka-topics.bat --alter --zookeeper localhost:2181 --topic library-events --config min.insync.replicas=2
kafka-topics.bat --zookeeper localhost:2181 --delete --topic <topic-name>
kafka-consumer-groups.bat --bootstrap-server localhost:9092 --list
kafka-consumer-groups.bat --bootstrap-server localhost:9092 --describe --group console-consumer-27773
kafka-run-class.bat kafka.tools.DumpLogSegments --deep-iteration --files /tmp/kafka-logs/test-topic-0/00000000000000000000.log