Setup Zookeeper and Kafka
Install MacOS
brew install kafkaSetup Configuration
We can create permanent data directory and point the config file to it.
- Inside
zookeeper.properties(for Zookeeper) file edit as follows:dataDir:~/data/zookeeper
- Inside
server.properties(for Kafka) file edit as follows:log.dirs:~/data/kafka
Start Zookeeper
zookeeper-server-start <path to zookeeper.properties config file>
zookeeper-server-start config/zookeeper.propertiesStart Kafka
kafka-server-start <path to server.properties config file>
kafka-server-start config/server.propertiesTopics
# List Topics
kafka-topics --zookeeper 127.0.0.1:2181 --list
# Create Topic
kafka-topics --zookeeper 127.0.0.1:2181 --topic first_topic --create --partitions 3 --replication-factor 1
# Create Topic
kafka-topics --zookeeper 127.0.0.1:2181 --topic second_topic --create --partitions 6 --replication-factor 1
# Describe Topic
kafka-topics --zookeeper 127.0.0.1:2181 --topic first_topic --describeModern Command line without zookeeper
Topics
# List Topics
kafka-topics --bootstrap-server localhost:9092 --list
# Create Topic
kafka-topics --bootstrap-server localhost:9092 --describe --topic first_topic
# Delete topic data
kafka-topics --bootstrap-server localhost:9092 --delete --topic first_topicProducer
# Use ctrl+C to complete sending data
kafka-console-producer --bootstrap-server localhost:9092 --topic first_topic
## Produce JSON
jq -rc . data.json | kafka-console-producer --bootstrap-server localhost:9092 --topic first_topicExperiments!!!
jq -rc . order-release.json | kafka-console-producer --bootstrap-server localhost:9092 --topic dev.us.by-realm-2.wms.orderRelease.event --property parse.key=true --property key.separator=":"
(cat header.properties; jq -rc . order-release.json) | kafka-console-producer --bootstrap-server localhost:9092 --topic dev.us.by-realm-2.wms.orderRelease.event --property parse.headers=true
headers.delimiter=\t
headers.separator=,
headers.key.separator=:
(cat header.properties | tr '\n' ','; jq -rc . order-release.json)
tr '\n' ','
{
cat header.properties | tr '\n' ','
echo -e "\t"
jq -rc . order-release.json
} | kafka-console-producer --bootstrap-server localhost:9092 --topic dev.us.by-realm-2.wms.orderRelease.event --property parse.headers=true