Title
Create new category
Edit page index title
Edit category
Edit link
Configure Kafka Tiered-Storage with S3
This page explains how to enable Kafka Tiered Storage, configure Ambari, and verify your setup. All environment-specific values are shown as placeholders — replace them with values from your environment before running any commands.
Reference (KIP-405) KIP-405: Kafka Tiered Storage - Apache Kafka - Apache Software Foundation.
Tiered storage with Kraft has not been certified.

Prerequisites
Tiered storage requires JDK 17 with Kafka 3. Kafka 3.7.2 supports JDK 17, so no Kafka rebuild is required.
Ambari Configuration Steps
kafka3-log4j
To see detailed segment offloading logs, configure the above loggers to DEBUG. Configure only if detailed logs are required.
kafka3-broker.xml
After restarting the Kafka Broker, you must see this message in the Kafka Broker logs:
Credentials Configuration with jceks
Run the below commands to store access/secret keys in the kafka3 jceks file.
Run on all broker nodes.
remote.log.storage.system.enable=truemust be set to enable Kafka3-env to export access/secret keys.

Create a Tiered Topic
Create the topic.
Config | Description |
|---|---|
local.retention.bytes | Maximum bytes retained locally on the broker before offloading to remote storage ( |
local.retention.ms | How long segments are kept locally before being eligible for offload ( |
segment.bytes | Size at which a log segment is rolled and becomes a candidate for offload ( |
remote.storage.enable | Enables tiered storage for this topic |
All configuration values above are intentionally set to minimal sizes for testing purposes, to trigger segment rolling and offloading as quickly as possible.
Produce test data
Config | Description |
|---|---|
num-records | Total number of records to produce |
record-size | Size of each record in bytes ( |
throughput | Produce as fast as possible |
acks | Leader acknowledgment only then send |
linger.ms | Waits up to 50ms to batch records before sending |
batch.size | Maximum batch size per send ( |
buffer.memory | Total producer buffer memory ( |
Verify offload to object storage
It might take some time for Kafka to offload the cold data.
Verify that the data gets deleted locally.
Consume the data from object storage
Troubleshooting
Error Running Brokers After Disabling Tiered Storage While Tiered Storage Exists
Root cause: All Kafka topics with the
remote.storage.enable=trueproperty should be deleted before disabling Tiered Storage. This is a known limitation.Forced Solution: Run Brokers with Tiered Storage enabled, then delete the topics