《30个Kafka常见错误小集合.docx》由会员分享,可在线阅读,更多相关《30个Kafka常见错误小集合.docx(35页珍藏版)》请在第一文库网上搜索。
1、30个Kafka常见错误小集合导读:本文是一个Kafka使用过程中的常见错误的总结。希望对你有帮助。1、 UnknownTopicOrPartitionExceptionorg. apache, kaf ka common. errors Un knownTopicOr Part it ion Except ion :This server does not host this topic-partition报错内容:分区数据不在原因分析:producer向不存在的topic发送消息,用户可以检查topic是否存在 或者设置 auto.create.topics.enable 参数2、 LEA
2、DER_NOT_AVAILABLEWARN Error while fetching metadata with correlation id 0:test=LEADER_NOT_AVAILABLE (org.apache.kafka.clients.NetworkClien报错内容:leader不可用原因分析:原因很多topic正在被删除 正在进行leader选举 使用kafka-topics脚本检查leader信息进而检查broker的存活情况尝试重启解决。3、 NotLeaderForPartitionExceptionmon.errors.Not LeaderForPartitionE
3、xception: This server isnot the leader for that topic-partition报错内容:broker已经不是对应分区的leader 了原因分析:发生在leader变更时 当leader从一个broker切换到另一个broker时,要分析什么原因引起了 leader的切换。4、 TimeoutExceptionmon.errors.TimeoutException: Expiring 5 record(s) for test-0:30040 ms has passe报错内容:请求超时原因分析:观察哪里抛出的 观察网络是否能通 如果可以通 可以考虑增
4、加request.timeout.ms 的值5、 RecordTooLargeExceptionWARN async.DefauItEventHandler: Produce request with correlation id 92548048failedduetoTopicName1:mon.errors.RecordTooLargeException报错内容:消息过大原因分析:生产者端 消息处理不过来了可以增加request.timeout.ms减少batch.size6、 Closing socket connectionClosing socket connection to/12
5、7001.(work.Processor)报错内容:连接关闭原因分析:如果javaApi producer版本高,想在客户端consumer启动低版本验证,会不停的报错无法识别客户端消息。7、 ConcurrentModificationExceptionjava.util.ConeurrentModificationException: KafkaConsumer is not safe formulti-threaded access报错内容:线程不安全原因分析:Kafka consumer是非线程安全的8、 NetWorkExceptionproducer-1kafka-producer
6、-network-threado.apache.kafkacommonnetworkSelector: Producer clientld=producer-lConnection with / disconnected报错内容:网络异常原因分析:网络连接中断检查broker的网络情况9、 ILLEGAL_GENERATIONILLEGAL_GENERATION occurred while committing offsets for group报错内容:无效的“代”原因分析:consumer错过了 rebalance原因是consumer花了大量时间处理数据。需要适当减少max.polLr
7、ecords值 增加max.poll.interval.ms或者想办法增加消息处理的速度10 启动 advertised, listeners 配置异常javalang.IllegalArgumentException: requirement failed: advertised.listenerscannot use the nonroutable meta-address 0.0.0.0. Use a routable IP address.at scala.Predef$require(Predef.scala:277)at kafka.server.KafkaConfig.valid
8、ateValues(KafkaConfig.scala:1203)at kafka.server.KafkaConfig.(KafkaConfig.scala:1170)at kafkaserver.KafkaConfig$fromProps(KafkaConfig.scala:881)at kafkaserver.KafkaConfig$.fromProps(KafkaConfig.scala:878)atkafkaserverKafkaServerStartable$.fromProps(KafkaServerStartable.scala:28)at kafkaKafka$main(Ka
9、fka.scala:82)at kafkaKafka.main(Kafka.scala)解决方法:修改server.propertiesadvertised, listeners = PLAINTEXT:/ip:9092 # ip 可以内网、外网 ip、127.0.0.1 或域名解析:server.properties 中有两个 listeners。listeners:启动 kafka 服务监听的 ip 和端口,可以监听内网ip和0.0.0.0(不能为外网ip),默认为.InetAddress.getCanonicalHostName。获取的 ip。 advertised.listeners:
10、 生产者和消费者连接的地址,kafka会把该地址注册到zookeeper中,所以只能为除0.0.0.0之外的合法ip或域名,默认和listeners的配置一致。11、启动 PrintGCDateStamps 异常0.004swarninggc -Xloggc is deprecated. Will use-Xlog:gc:/data/service/kafka_2.11-0.11.0.2/bin/./logs/kafkaServer-gcloginsteadUnrecognized VM option PrintGCDateStampsError: Could not create the J
11、ava Virtual Machine.Error: A fatal exception has occurred. Program will exit.解决方法:更换jdkl.8.x版本或者使用=kafkal.0.x的版本。解析:只有在jdkl.9并且kafka版本在1.0.x之前的版本才会出现。12、生成者发送message失败或消费者不能消费(kafkal. 0.1)#( java)org. apache, kafka 警告Connection to node 0 could not be established. Broker may not be available.# (nodej
12、s) kafka-node 异常(执行 producer. send 后的异常) TimeoutError: Request timed out after 30000msatnewTimeoutError(D:projectnodekafka-testsrcnode_moduleskafka-nodeliberrorsTimeoutError.js:6:9)atTimeoutsetTimeoutas_onTimeout(D:projectnodekafka-testsrcnode_moduleskafka-nodelibkafkaClient.js:737:14)at ontimeout (
13、timers.js:466:11)at tryOnTimeout (timers.js:304:5)at Timer.listOnTimeout (timers.js:264:5) message: 1 Request timed out after30000ms1 解决方法:检查advertised.listeners的配置(如果有多个Broker可根据java版本的对应的node号检查配置),判断当前的网络是否可以连接到地址(telnet等)13、partitions配置的值过小造成错误(kafkaL 0.1)#( java)org. apache kafka(执行 producer. s
14、end)Exception in thread main monKafkaException: Invalidpartition given with record: 1 is not in the range 0.1).atorg.apache.kafkaclientsproducer.KafkaProducer.waitOnMetadata(KafkaProducer.java:908)atorg.apache.kafka.clientsproducer.KafkaProducer.doSend(KafkaProducer.java:778)atorg.apache.kafka.clien
15、tsproducer.KafkaProducer.send(KafkaProducer.java:768)at com.wenshaodal.TestProducermain(TestProducer.java:36)# (nodejs) kafka-node 异常(执行 producer. send 后的异常) BrokerNotAvailableError: Could not find the leaderatnewBrokerNotAvailableError(D:projectnodekafka-testsrcnode_moduleskafka-nodeliberrorsBrokerNotAvailableError.js:11:9)atrefreshMetadatae