INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$) log4j:ERROR Failed to rename [C:\kafka\kafka_2.12-2.4.0/logs/server.log] to [C:\kafka\kafka_2.12-2.4.0/logs/server.log.2025-04-01-19]. [2025-04-02 12:22:18,449] ERROR Exiting Kafka due to fatal exception (kafka.Kafka$) org.apache.kafka.common.config.ConfigException: Invalid value 168 # ???????????????é?????7?¤? for configuration log.retention.hours: Not a number of type INT
时间: 2025-04-06 12:09:34 浏览: 59
### Kafka 日志保留配置错误解决方案
当遇到 `ConfigException` 错误提示 `log.retention.hours not a number of type INT` 时,这表明 Kafka 配置文件中的参数 `log.retention.hours` 被设置为了一个非整数值。此问题可以通过以下方式解决。
#### 参数说明
Kafka 的日志保留时间由多个参数控制,其中 `log.retention.hours` 是用于指定日志保留小时数的一个重要参数[^1]。如果该值被设为非法字符或者浮点数而非整数,则会触发上述异常。
#### 解决方法
要修复这个问题,请按照如下操作:
1. **检查并修改配置文件**
打开 Kafka 的服务器配置文件(通常是 `server.properties`),找到 `log.retention.hours` 这一配置项,并将其更改为合法的整数值。例如:
```properties
log.retention.hours=168
```
2. **重启 Kafka 服务**
修改完成后,重新启动 Kafka 服务以使更改生效。可以使用以下命令来停止和启动 Kafka Broker:
```bash
bin/kafka-server-stop.sh
bin/kafka-server-start.sh config/server.properties
```
3. **验证配置有效性**
使用 Kafka 提供的工具检查当前的日志保留策略是否已更新成功。运行以下命令查看主题的具体配置详情:
```bash
kafka-configs --bootstrap-server localhost:9092 --entity-type topics --describe --all
```
#### 注意事项
尽管可以直接通过编辑全局配置调整默认行为,但如果仅针对特定主题设定不同的保留期限,则应考虑利用动态配置功能完成个性化需求管理[^2]。
```python
from confluent_kafka.admin import AdminClient, NewTopic
admin_client = AdminClient({"bootstrap.servers": "localhost:9092"})
topic_list = [
NewTopic(
"test_topic",
num_partitions=1,
replication_factor=1,
config={"retention.ms": str(7 * 24 * 60 * 60 * 1000)} # 设置七天有效期
)
]
fs = admin_client.create_topics(topic_list)
for topic, f in fs.items():
try:
f.result() # The result itself is None
print("Topic {} created".format(topic))
except Exception as e:
print("Failed to create topic {}: {}".format(topic, e))
```
阅读全文
相关推荐















