Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache kafka Kakfa未能以致命错误开始”;找到重复的日志目录";_Apache Kafka_Cloudera - Fatal编程技术网

Apache kafka Kakfa未能以致命错误开始”;找到重复的日志目录";

Apache kafka Kakfa未能以致命错误开始”;找到重复的日志目录";,apache-kafka,cloudera,Apache Kafka,Cloudera,卡夫卡无法启动,出现以下错误: Fatal error during KafkaServer startup. Prepare to shutdown java.lang.IllegalArgumentException: Duplicate log directories found: /node5/kafka/data/logs-47, /node7/kafka/data/logs-47! at kafka.log.LogManager$$anonfun$loadLogs$2$$an

卡夫卡无法启动,出现以下错误:

Fatal error during KafkaServer startup. Prepare to shutdown
java.lang.IllegalArgumentException: Duplicate log directories found: /node5/kafka/data/logs-47, /node7/kafka/data/logs-47!
    at kafka.log.LogManager$$anonfun$loadLogs$2$$anonfun$3$$anonfun$apply$10$$anonfun$apply$1.apply$mcV$sp(LogManager.scala:155)
    at kafka.utils.CoreUtils$$anon$1.run(CoreUtils.scala:56)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Kafka 0.9.0.1作为Cloudera的一部分部署

这个问题意味着什么

这个问题有解决办法吗?找不到

在某个主题分区出现复制不足分区问题后,我在重新启动代理后出现了此错误

在重新启动之前,代理的日志中有以下错误

    java.lang.IllegalStateException: Compaction for partition [logs,47] cannot be aborted and paused since it is in LogCleaningPaused state.
        at kafka.log.LogCleanerManager$$anonfun$abortAndPauseCleaning$1.apply$mcV$sp(LogCleanerManager.scala:149)
        at kafka.log.LogCleanerManager$$anonfun$abortAndPauseCleaning$1.apply(LogCleanerManager.scala:140)
        at kafka.log.LogCleanerManager$$anonfun$abortAndPauseCleaning$1.apply(LogCleanerManager.scala:140)
        at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:231)
...
Cloudera数据目录配置:

/node/kafka/data
/node2/kafka/data
...
/node8/kafka/data
更新

我检查了重复目录的内容,发现最新目录似乎有空的日志段:

ls -l /node5/kafka/data/logs-47

-rw-r--r-- 1 kafka kafka 10485760 Mar  9 05:35 00000000000000000000.index
-rw-r--r-- 1 kafka kafka        0 Mar  8 13:12 00000000000000000000.log
旧文件夹不可用时:

ls /node7/kafka/data/logs-47

-rw-r--r-- 1 kafka kafka 10485760 Mar  9 05:35 00000000000000366115.index
-rw-r--r-- 1 kafka kafka        0 Nov 25 10:13 00000000000000366115.log

您的错误是,您在一个代理上有多个目录,其中包含来自名为
logs
的主题的数据,该主题至少有47个分区

LogCleaner无法继续删除该数据,除非它知道哪一个是正确的目录

如果您对主题中应该包含的内容有所了解,可以转储日志段并检查消息


如果您不知道应该存在哪些数据,并且分区被复制到其他正常的代理,那么请删除所有错误的分区目录并重新启动代理,让复制修复丢失的数据

那么,该代理上有哪些目录用于Kafka主题数据?@OneCricketeer抱歉,你什么意思?卡夫卡把数据存储在磁盘上。请显示该目录的列表data@OneCricketeer添加了Cloudera的配置。希望这是你的意思。谢谢,我为这个问题添加了更多的信息。也许我可以只删除包含空日志段的文件夹?要修复错误,您必须删除其中一个目录,而不仅仅是文件。日志段为空这一事实似乎是另一个问题