kafka
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| kafka [2026/05/19 14:17] – created reddy | kafka [2026/05/19 14:29] (current) – reddy | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Kafka ====== | ====== Kafka ====== | ||
| + | |||
| + | ===== Kafka Broker ===== | ||
| + | |||
| + | ==== Kafka (with ZooKeeper) in a VM ==== | ||
| + | |||
| + | < | ||
| + | ### Install JDK ### | ||
| + | |||
| + | JAVAVERSION=17 | ||
| + | # For Ubuntu | ||
| + | sudo apt update | ||
| + | sudo apt install -y openjdk-${JAVAVERSION}-jdk net-tools | ||
| + | # For RedHat | ||
| + | sudo dnf install -y java-${JAVAVERSION}-openjdk net-tools | ||
| + | |||
| + | SCALA_VERSION=2.13 | ||
| + | KAFKA_VERSION=3.7.1 | ||
| + | DOWNLOAD_SITE=downloads.apache.org | ||
| + | # | ||
| + | curl -OL https:// | ||
| + | tar xzf kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz | ||
| + | cd kafka_${SCALA_VERSION}-${KAFKA_VERSION} | ||
| + | |||
| + | ### Configure ZooKeeper ### | ||
| + | |||
| + | cat >> ./ | ||
| + | tickTime=1000 | ||
| + | initLimit=3600 | ||
| + | syncLimit=15 | ||
| + | # Below are the 3 VM hostnames with Zookeeper leader-connection and election ports | ||
| + | server.1=a.xyz: | ||
| + | server.2=b.xyz: | ||
| + | server.3=c.xyz: | ||
| + | EOF | ||
| + | |||
| + | ZOOKEEPERDATA=/ | ||
| + | mkdir -p $ZOOKEEPERDATA | ||
| + | echo " | ||
| + | |||
| + | sudo touch / | ||
| + | sudo chown ubuntu. / | ||
| + | |||
| + | # Create a service file, but this is OK for now | ||
| + | nohup ./ | ||
| + | |||
| + | |||
| + | ### Configure Kafka Broker ### | ||
| + | |||
| + | KAFKADATA=/ | ||
| + | mkdir -p $KAFKADATA | ||
| + | |||
| + | # Change " | ||
| + | # Set " | ||
| + | # Set " | ||
| + | |||
| + | sudo touch / | ||
| + | sudo chown ubuntu. / | ||
| + | |||
| + | # Create a service file, this is for testing | ||
| + | nohup ./ | ||
| + | </ | ||
| + | |||
| + | ==== Kafka (kRaft) in a VM ==== | ||
| Install Java with SDKman ( curl -s " | Install Java with SDKman ( curl -s " | ||
| Line 34: | Line 97: | ||
| nohup ./ | nohup ./ | ||
| </ | </ | ||
| + | |||
| + | ==== Kafka in Docker ==== | ||
| + | |||
| + | < | ||
| + | # In Docker Compose | ||
| + | services: | ||
| + | kafka: | ||
| + | image: apache/ | ||
| + | container_name: | ||
| + | ports: | ||
| + | - " | ||
| + | environment: | ||
| + | KAFKA_NODE_ID: | ||
| + | KAFKA_PROCESS_ROLES: | ||
| + | KAFKA_LISTENERS: | ||
| + | KAFKA_ADVERTISED_LISTENERS: | ||
| + | KAFKA_CONTROLLER_LISTENER_NAMES: | ||
| + | KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: | ||
| + | KAFKA_CONTROLLER_QUORUM_VOTERS: | ||
| + | KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: | ||
| + | KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: | ||
| + | KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: | ||
| + | </ | ||
| + | |||
| + | ===== Kafka CLI ===== | ||
| + | |||
| + | < | ||
| + | # List topics | ||
| + | ./ | ||
| + | |||
| + | # Create a topic for testing | ||
| + | ./ | ||
| + | |||
| + | # List topics | ||
| + | ./ | ||
| + | |||
| + | # See details for the topic | ||
| + | ./ | ||
| + | |||
| + | # To change the replication factor for a topic, use the " | ||
| + | cat > partcfg.json <<EOF | ||
| + | {" | ||
| + | " | ||
| + | | ||
| + | | ||
| + | | ||
| + | ]} | ||
| + | EOF | ||
| + | kafka-reassign-partitions --bootstrap-server=a.xyz: | ||
| + | |||
| + | # To change any other config for an existing topic | ||
| + | # ./ | ||
| + | # | ||
| + | |||
| + | # See more at: https:// | ||
| </ | </ | ||
kafka.1779193078.txt.gz · Last modified: by reddy
