在运行时更改Kafka保留期

ltqd579y  于 2021-06-08  发布在  Kafka
关注(0)|答案(4)|浏览(530)

使用kafka 0.8.1.1,如何在日志运行时更改日志保留时间?文件上说这房子 log.retention.hours ,但试图用 kafka-topics.sh 返回此错误

$ bin/kafka-topics.sh --zookeeper zk.yoursite.com --alter --topic as-access --config topic.log.retention.hours=24
Error while executing topic command requirement failed: Unknown configuration "topic.log.retention.hours".
java.lang.IllegalArgumentException: requirement failed: Unknown configuration "topic.log.retention.hours".
    at scala.Predef$.require(Predef.scala:145)
    at kafka.log.LogConfig$$anonfun$validateNames$1.apply(LogConfig.scala:138)
    at kafka.log.LogConfig$$anonfun$validateNames$1.apply(LogConfig.scala:137)
    at scala.collection.Iterator$class.foreach(Iterator.scala:631)
    at scala.collection.JavaConversions$JEnumerationWrapper.foreach(JavaConversions.scala:479)
    at kafka.log.LogConfig$.validateNames(LogConfig.scala:137)
    at kafka.log.LogConfig$.validate(LogConfig.scala:145)
    at kafka.admin.TopicCommand$.parseTopicConfigsToBeAdded(TopicCommand.scala:171)
    at kafka.admin.TopicCommand$$anonfun$alterTopic$1.apply(TopicCommand.scala:95)
    at kafka.admin.TopicCommand$$anonfun$alterTopic$1.apply(TopicCommand.scala:93)
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:57)
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:43)
    at kafka.admin.TopicCommand$.alterTopic(TopicCommand.scala:93)
    at kafka.admin.TopicCommand$.main(TopicCommand.scala:52)
    at kafka.admin.TopicCommand.main(TopicCommand.scala)
tsm1rwdh

tsm1rwdh1#

我在中测试并使用了这个命令 kafka confluent V4.0.0 以及 apache kafka V 1.0.0 and 1.0.1/opt/kafka/confluent-4.0.0/bin/kafka-configs --zookeeper XX.XX.XX.XX:2181 --entity-type topics --entity-name test --alter --add-config retention.ms=55000test 是主题名称。
我认为它在其他版本中也很好用

arknldoa

arknldoa2#

log.retention.hours 是代理的属性,在创建主题时用作默认值。使用更改当前正在运行的主题的配置时 kafka-topics.sh ,则应指定主题级属性。
日志保留时间的主题级属性是 retention.ms .
从kafka 0.8.1文档中的主题级配置:
属性:retention.ms
默认值:7天
服务器默认属性:log.retention.minutes
描述:如果使用“删除”保留策略,此配置控制在丢弃旧日志段以释放空间之前保留日志的最长时间。这表示消费者必须多久读取数据的sla。
因此,正确的命令取决于版本。高达0.8.2(尽管文档仍显示其使用率高达0.10.1)使用 kafka-topics.sh --alter 在0.10.2之后(或者从0.9.0开始)使用 kafka-configs.sh --alter ```
$ bin/kafka-topics.sh --zookeeper zk.yoursite.com --alter --topic as-access --config retention.ms=86400000

您可以使用以下命令检查配置是否正确应用。

$ bin/kafka-topics.sh --describe --zookeeper zk.yoursite.com --topic as-access

然后你会看到下面这样的东西。

Topic:as-access PartitionCount:3 ReplicationFactor:3 Configs:retention.ms=86400000

p1tboqfb

p1tboqfb3#

正确的配置键是 retention.ms ```
$ bin/kafka-topics.sh --zookeeper zk.prod.yoursite.com --alter --topic as-access --config retention.ms=86400000
Updated config for topic "my-topic".

hrirmatl

hrirmatl4#

以下是从kafka 0.10.2.0开始更改主题配置的正确方法:

bin/kafka-configs.sh --zookeeper <zk_host> --alter --entity-type topics --entity-name test_topic --add-config retention.ms=86400000

主题配置alter操作已被弃用 bin/kafka-topics.sh .

WARNING: Altering topic configuration from this script has been deprecated and may be removed in future releases.
     Going forward, please use kafka-configs.sh for this functionality`

相关问题