当kafka集群单个节点出现磁盘满了,需要清理历史topic数据;方法如下
1): 停掉kafka进程,将kafka的server.properties中的log.retention.hours=1/60; 将日志数据保留1分钟
或者
在不用停掉kafka进程的情况下执行:
kafka-configs.sh –zookeeper localhost:2181 –entity-type topics –entity-name test –alter –add-config retention.ms=86400000 #test 为topic名称
#retention.ms 保留时间24小时
这样就可以保证当前消费者不会再消费阻塞的数据了
首先是可以在配置文件中设置全局性的topic配置参数,其次是可以在创建topic时使用 –confi设置一个或多个自定义的配置。自定义的配置项优先级别会高于全局配置。
topic 参数设置如下:
这是在创建一个topic时自定义了最大的消息字节数和消息持久化参数: > bin/kafka-topics.sh –zookeeper localhost:2181 –create –topic my-topic –partitions 1 –replication-factor 1 –config max.message.bytes=64000 –config flush.messages=1
可以在创建topic后继续使用命令修改topic中已经定义了的参数,本示例更新my-topic的最大message大小:: > bin/kafka-configs.sh –zookeeper localhost:2181 –entity-type topics –entity-name my-topic –alter –add-config max.message.bytes=128000
要检查在主题上设置的覆盖,您可以执行 > bin/kafka-configs.sh –zookeeper localhost:2181 –entity-type topics –entity-name my-topic –describe
或者是删除指定的topic中的某个自定义参数: > bin/kafka-topics.sh –zookeeper localhost:2181 –alter –topic my-topic –deleteConfig max.message.bytes
或者是删除指定的topic中的某个自定义参数: > bin/kafka-configs.sh –zookeeper localhost:2181 –entity-type topics –entity-name my-topic –alter –delete-config max.message.bytes