当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 参数设置如下:

kafka参数在线修改-LMLPHP

kafka参数在线修改-LMLPHP

kafka参数在线修改-LMLPHP

这是在创建一个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

  

 

05-28 16:48