我刚刚升级到Kafka 1.0和zookeeper 3.4.10。首先,一切都开始了。独立的生产者和消费者按预期工作。在我运行代码大约10分钟后,Kafka失败并出现此错误:
[2017-11-07 16:48:01,304] INFO在目录C:\ Kafka \ kafka_2.12-1.0.0 \ kafka-logs(kafka.log.LogManager)中停止提供日志
[2017-11-07 16:48:01,320]致命关闭代理,因为C:\ Kafka \ kafka_2.12-1.0.0 \ kafka-logs中的所有日志目录都已失败(kafka.log.LogManager)
我重新安装并重新配置Kafka 1.0,同样的事情发生了。如果我尝试重新启动,则会发生同样的错误。
删除日志文件有助于启动Kafka,但在短期运行后它会再次失败。
我已经运行了0.10.2版本很长一段时间了,从来没有遇到过这样的事情,它在很长一段时间内非常稳定。
我试图找到解决方案,并按照documentation.
中的说明操作这还不是一个生产环境,它是一个相当简单的设置,一个生产者,一个消费者从一个主题阅读。
我不确定这是否与zookeeper有任何关系。
**更新:**问题已发布在Apache JIRA board 到目前为止,共识似乎是Windows问题。
答案 0 :(得分:6)
也遇到了这个问题,仅清除kafka日志无效。您还必须清除Zookeeper。
解决步骤:
查看您的server.properties文件,并在以下条目下找到日志目录。
Example:
log.dirs=/tmp/kafka-logs/
删除日志目录及其内容。一旦重新启动,Kafka将重新创建目录。
查看zookeeper.properties文件,并在以下条目下找到数据目录。
Example:
dataDir=/tmp/zookeeper
删除数据目录及其内容。一旦再次启动,Zookeeper将重新创建目录。
启动Zookeeper。
<KAFKA_HOME>bin/zookeeper-server-start.sh -daemon <KAFKA_HOME>config/zookeeper.properties
启动kakfa经纪人。
<KAFKA_HOME>bin/kafka-server-start.sh -daemon <KAFKA_HOME>config/server.properties
通过查看logs / kafkaServer.out日志文件来验证代理是否已开始正常运行。
答案 1 :(得分:1)
如果真的要在Windows计算机上执行,请尝试以Windows方式更改mask = df.drop('datetime', axis=1).isnull().all(axis=1)
df['g'] = (~mask).cumsum()
L = list(map(tuple, df[mask].groupby('g')['datetime'].agg(['first','last']).values.tolist()))
print (L)
[('2018-10-10 20:00:00', '2018-10-10 22:00:00'),
('2018-10-11 02:00:00', '2018-10-11 03:00:00')]
文件夹中log.dirs
中的参数log.dirs=C:\some_path\some_path_kafLogs
(例如server.properties
)的路径
默认情况下,此路径将采用unix方式(例如/config
)。
这在Windows计算机上对我有用。
答案 2 :(得分:0)
只需清除C:\Kafka\kafka_2.12-1.0.0\kafka-logs
中的日志并重新启动kafka
答案 3 :(得分:0)
删除Zookeeper目录中的日志
答案 4 :(得分:0)
我已经尝试了所有解决方案,例如
log.dirs=C:\kafka_2.12-2.1.1\data\kafka
的从前斜线“ /”到后斜线“ \”(如C:\kafka_2.12-2.1.1\kafka_2.12-2.1.1datakafka
)的log.dirs路径更改,并且该问题确实停止并且问题已解决。最后我找到了这个link,您会从google kafka log.dirs窗口中获得它的
答案 5 :(得分:0)
所以这似乎是Windows问题。
https://issues.apache.org/jira/browse/KAFKA-6188
JIRA已解决,并且附加了未合并的补丁。
https://github.com/apache/kafka/pull/6403
所以您的选择是:
答案 6 :(得分:0)
对我有用的是删除kafka和zookeeper日志目录,然后在kafka和zookeeper server.properties文件(可以在kafka / conf / server.properties中找到)中配置我的日志目录路径,通常使用斜杠“ /”到反斜杠“ \”
答案 7 :(得分:0)
问题在于并发使用kafka的日志文件。该任务是延迟外部日志文件在所有Kafka线程和
之间的更改主题配置可以帮助您
Map<String, String> config = new HashMap<>();
config.put(CLEANUP_POLICY_CONFIG, CLEANUP_POLICY_COMPACT);
config.put(FILE_DELETE_DELAY_MS_CONFIG, "3600000");
config.put(DELETE_RETENTION_MS_CONFIG, "864000000");
config.put(RETENTION_MS_CONFIG, "86400000");
答案 8 :(得分:0)
只需删除以下所有日志:
C:\ tmp \ kafka-logs
然后重新启动Zookeeper和kafka服务器。
答案 9 :(得分:0)
在更改为路径分隔符的窗口上 '' 解决了该问题,每个都需要转义。 '\' C:\路径\日志
答案 10 :(得分:-2)
重新安装zookeeper可以解决此问题。