一、docker-compose文件
version: '3.4'
services:
kafka1: # [ kafka2 | kafka3 ]
image: bitnami/kafka:2.3.0
privileged: true
restart: always
hostname: kafka1 # [ kafka2 | kafka3 ]
container_name: kafka1 # [ kafka2 | kafka3 ]
ports:
- 9092:9092
- 9999:9999
volumes:
- "./data:/bitnami/kafka/data"
environment:
KAFKA_HEAP_OPTS: -Xmx4096m -Xms4096m
KAFKA_MAX_REQUEST_SIZE: 3000000
KAFKA_MESSAGE_MAX_BYTES: 3000000
KAFKA_MAX_MESSAGE_BYTES: 3000000
KAFKA_BROKER_ID: 1 # [ 2 | 3 ]
KAFKA_NUM_PARTITIONS: 3 # 分区数
KAFKA_DEFAULT_REPLICATION_FACTOR: 2 #副本数
ALLOW_PLAINTEXT_LISTENER: yes #允许使用PLAINTEXT侦听器
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 #容器内访问地址
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://本机ip:9092 #容器外访问的地址
KAFKA_ADVERTISED_HOST_NAME: 本机ip
KAFKA_ADVERTISED_PORT: 9092
KAFKA_ZOOKEEPER_CONNECT: zk集群ip1,zk集群ip2,zk集群ip3
KAFKA_LOG_RETENTION_HOURS: 168 # 日志保留时间(小时)
KAFKA_LOG_CLEANUP_POLICY: delete # 日志清理策略
TZ: Asia/Shanghai
networks:
- kafka-net
networks:
kafka-net:
driver: bridge
二、启动报错日志
[2024-09-24 14:31:35,686] ERROR [KafkaServer id=1] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
java.nio.file.AccessDeniedException: /bitnami/kafka/data/recovery-point-offset-checkpoint
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
三、解决方式
原因是data目录的权限不够
chmod +777 data