Avec Kafka 0.8.1.1, comment puis-je modifier le temps de conservation du journal pendant son exécution? --- documentation indique que la propriété est log.retention.hours
, mais en essayant de le changer en utilisant kafka-topics.sh
renvoie cette erreur
$ 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)
log.retention.hours
est une propriété d'un courtier utilisée comme valeur par défaut lors de la création d'un sujet. Lorsque vous modifiez les configurations de la rubrique en cours d'exécution à l'aide de kafka-topics.sh
, vous devez spécifier une propriété au niveau du sujet.
Une propriété de niveau rubrique pour la durée de conservation du journal est retention.ms
.
De configuration au niveau du sujet dans Kafka 0.8.1:
Donc, la commande correcte est
$ bin/kafka-topics.sh --zookeeper zk.yoursite.com --alter --topic as-access --config retention.ms=86400000
Vous pouvez vérifier si la configuration est correctement appliquée avec la commande suivante.
$ bin/kafka-topics.sh --describe --zookeeper zk.yoursite.com --topic as-access
Ensuite, vous verrez quelque chose comme ci-dessous.
Topic:as-access PartitionCount:3 ReplicationFactor:3 Configs:retention.ms=86400000
Voici la bonne façon de modifier la configuration de sujet à partir de 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
Les opérations de modification de configuration de sujet sont obsolètes pour 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`
La clé de configuration correcte est 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".
J'ai testé et utilisé cette commande dans kafka confluent V4.0.0
et 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=55000
test
est le nom typique.
Je pense que cela fonctionne bien dans d'autres versions aussi