在Kafka 0.10.2.x中设置代理的log.retentions.hours

时间:2018-09-10 13:05:02

标签: apache-kafka

我正在尝试将log.retenton.hours设置为kafka 0.10.2x的代理级别配置。但是我收到以下命令的错误。

kafka-configs.sh  --zookeeper zookeeper:2181 --entity-type brokers --entity-name 0 --alter --add-config log.retention.hours=-1

Error while executing config command requirement failed: Unknown Dynamic Configuration 'log.retention.hours'.
java.lang.IllegalArgumentException: requirement failed: Unknown Dynamic Configuration 'log.retention.hours'.
    at scala.Predef$.require(Predef.scala:277)
    at kafka.server.DynamicConfig$.$anonfun$validate$1(DynamicConfig.scala:101)
    at kafka.server.DynamicConfig$.$anonfun$validate$1$adapted(DynamicConfig.scala:100)
    at scala.collection.Iterator.foreach(Iterator.scala:929)
    at scala.collection.Iterator.foreach$(Iterator.scala:929)
    at scala.collection.AbstractIterator.foreach(Iterator.scala:1406)
    at kafka.server.DynamicConfig$.kafka$server$DynamicConfig$$validate(DynamicConfig.scala:100)
    at kafka.server.DynamicConfig$Broker$.validate(DynamicConfig.scala:59)
    at kafka.admin.AdminUtils$.changeBrokerConfig(AdminUtils.scala:555)
    at kafka.admin.ConfigCommand$.alterConfig(ConfigCommand.scala:105)
    at kafka.admin.ConfigCommand$.main(ConfigCommand.scala:68)
    at kafka.admin.ConfigCommand.main(ConfigCommand.scala)

2 个答案:

答案 0 :(得分:2)

如错误所示,该属性不是动态的(在代理运行时无法修改)

此外,您的版本不应该提供该功能

  

从Kafka 1.1版开始,可以在不重新启动代理的情况下更新某些代理配置

您可以按主题级别设置保留时间,否则,您需要编辑每个代理的server.properties文件并正常重启它们

我确定您有充分的理由“禁用”保留,但我建议您先尝试压缩主题

答案 1 :(得分:2)

log.retention.hours是代理级别的只读属性,因此无法使用kafka-config.sh动态更改。

在server.properties中对其进行更改,然后重新启动代理。

以下是只读或动态代理配置的详细信息。 GitHub

相关问题