kafka修改对应topic的日志保存周期
1.server.properties配置
在创建topic时候设置参数,会覆盖server.properties的相同属性的配置
log.retention.bytes=xxx
topic每个分区的最大文件大小,一个topic的大小限制 = 分区数*log.retention.bytes。-1没有大小限制 log.retention.bytes和log.retention.minutes任意一个达到要求,都会执行删除,会被topic创建时的指定参数覆盖
log.retention.hours=168
数据存储的最大时间超过这个时间会根据log.cleanup.policy设置的策略处理数据,也就是消费端能够多久去消费数据
log.retention.bytes和log.retention.minutes达到要求,都会执行删除,会被topic创建时的指定参数覆盖
2.查看所有的topic
export JMX_PORT=10055 && ./kafka-topics.sh --list --zookeeper zookeeper01:2181
3.查看topic详细描述
export JMX_PORT=10055 && ./kafka-topics.sh --describe --zookeeper zookeeper01:2181 --topic xxxx
4.修改对应的topic的保存时长
假设是3天 retention.ms这个参数是毫秒数,需要转一下
export JMX_PORT=10055 && ./kafka-topics.sh --zookeeper zookeeper01:2181 -topic xxxx --alter --config retention.ms=259200000
5.如果报错rmi 7088错误
如果命令不加export JMX_PORT=10055 会使用进程配置好的端口7088
注释掉这个,因为接受和发送7088端口冲突了
-Dcom.sun.management.jmxremote.rmi.port=7088
所以执行的时候先传入一个变量export JMX_PORT=10055
可以看kafka-run-class.sh中
if [ $JMX_PORT ]; then
KAFKA_JMX_OPTS="$KAFKA_JMX_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT "
fi