How to install Apache Kafka on Mac without ZooKeeper (KRaft mode)
Install Kafka in KRaft mode on Mac without ZooKeeper. Download Kafka for macOS, format storage with kafka-storage, and verify a single-node broker.
Install and run Kafka in KRaft mode on macOS
KRaft mode runs Kafka without ZooKeeper, simplifying deployment and reducing resource requirements. This guide walks you through setting up a single-node KRaft cluster.
What you'll learn:
- How to install Java 11 (required dependency)
- How to generate a cluster ID and format storage
- How to start Kafka in KRaft mode
- How to configure your PATH for CLI access
KRaft vs ZooKeeper
KRaft mode became production-ready in Kafka 3.3. For maximum compatibility with older tutorials and tools, see the Mac ZooKeeper installation guide.
Installation overview
Step 1: Install Java JDK 11
Kafka requires Java 11 or later.
- Download Amazon Corretto 11 (free OpenJDK distribution)
- Double-click the downloaded
.pkgfile - Follow the installation wizard
Verify the installation:
java -version Expected output:
openjdk version "11.0.10" 2021-01-19 LTS
OpenJDK Runtime Environment Corretto-11.0.10.9.1 (build 11.0.10+9-LTS)
OpenJDK 64-Bit Server VM Corretto-11.0.10.9.1 (build 11.0.10+9-LTS, mixed mode) Step 2: Download and extract Kafka
Download from kafka.apache.org/downloads (choose the latest binary with Scala 2.13) and extract:
cd ~/Downloads
tar -xzf kafka_2.13-3.0.0.tgz
mv kafka_2.13-3.0.0 ~/ Step 3: Generate cluster ID
KRaft clusters require a unique identifier:
~/kafka_2.13-3.0.0/bin/kafka-storage.sh random-uuid This returns a UUID like 76BLQI7sT_ql1mBfKsOk9Q. Save this value.
Step 4: Format storage
Format the log directory using your cluster ID (replace with your generated UUID):
~/kafka_2.13-3.0.0/bin/kafka-storage.sh format \
-t <uuid> \
-c ~/kafka_2.13-3.0.0/config/kraft/server.properties This formats the directory specified in log.dirs (default: /tmp/kraft-combined-logs).
Step 5: Start Kafka
~/kafka_2.13-3.0.0/bin/kafka-server-start.sh ~/kafka_2.13-3.0.0/config/kraft/server.properties Keep this terminal window open. Kafka is now running at localhost:9092 in KRaft mode.
Step 6: Configure PATH
Add Kafka binaries to your PATH for convenient access.
Edit your shell configuration file (~/.zshrc for zsh or ~/.bashrc for bash):
export PATH="$PATH:$HOME/kafka_2.13-3.0.0/bin" Reload your shell:
source ~/.zshrc Verify the setup:
kafka-topics.sh --version See it in practice with Conduktor
Conduktor Console can connect to your KRaft cluster at
localhost:9092for visual topic management.
Next steps
- Mac Homebrew installation for a one-command setup with managed services
- CLI tutorials to create topics and produce messages
- KRaft mode concepts for deeper understanding