Kafka 学习笔记(五)之Kafka Trouble Shooting (上)

原创 2015年07月11日 08:00:37

Kafka Trouble Shooting

前几篇写的客户端是使用,实在理想状态下的,没有错误。然而,理想很丰满,现实很骨感啊!Kafka一个最大的麻烦就是会遇到各种错误,exception会夹杂在大量的background noise中,很难定位错误。(这让我觉得Kafka特别不成熟,但是鉴于想linkedin这种大公司都在用这个呢,我们就忍忍吧。。。)今天我们来看看kafka的各种exception和他们都是什么意思。


1.  producer can not connect to Kafka

--kafka.common.KafkaException: fetching topic metadata for topics [Set(t1)] from broker [ArrayBuffer(id:0, host:localhost, port:9092)] failed

Caused by: java.net.ConnectException: connection failed.

问题可能原因:

  • 查看host 和 port, 在brokerlist
  • telnet查看网络状况
  • 最后一个可能的原因多发生在virtual network 的情况下,例如我们用的主机是Amazon AWS。AWS的主机在server内部用一个地址,但是外部看主机的时候用的是另外一个地址,所以当broker advertise它们自己的时候,可能用的是内部地址。Broker may register with the wrong host, 用advertised.host 来解决。把advertised.host 注释掉,然后用能从外部链接上你主机的地址,看好host 和 port。
2. producer LeaderNotAvailable Error
-- Warn Error while fetching metadata, no partition metadata for topic t1 due to 
kafka.common.LeaderNotAvailableException
问题可能原因:
  • 是否Create the topic
  • auto.create.topic,enble=true?true的时候,在写入一个不存在的topic是会自动create topic,但是,leader的configure会滞后一点儿,需要等一会儿
  • 等待retry,kafka会从replication 里选择leader
  • default.replication.factor 要比broker的数量少,不然topic创建不了
  • kafka-topics.sh --zookeeper localhost:2181 --describe, 查看broker list 看看leader是否存在
3. topic is not deleted
这个是我最头疼的问题,研究了好久,都没能成功删除topic,后来急了,不用命令了,直接手动去文件夹里删除topic文件了,都没删除了。。。
  1. 删除delete,然后就没有然后了,啥也没发生。。。
  2. --delete命令执行完了,永远的 marked for deletion
  3. 当时删除了,在重启,又出现了,简直没法删除,跟年糕一样
可能原因:
  • 0.8.2.0版本之前kafka没有删除topic的功能
  • 如果是mark for deletion,过几个小时还没删除掉的话,去config里,server.properties 将delete.topic.enable 设置为true
  • 如果还是不行,auto.create.topic.enable的话,删掉了之后,client得到metadata后会再create出来,所以要distable
4. Consumer 得不到data
可能原因:
  • 没有可用消息
  • default设置,Consumer只接收新消息(offset 默认largest)
  • 消息长度大于fetch.message.max.bytes
  • consumer 的code没写对,可能接收了,没print出来一类的
  • 查看offset设置,如何查看呢:
        bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker


用法 :bin/kafka-run-class.sh kafka.tools.ConsumerOffsetChecker --broker-info --group avg --zookeeper localhost:2181

windows下kafka服务搭建

kafka官网:http://kafka.apache.org/ 首先下载两个压缩文件: 1 zookeeper 2 kafka 自行搜索百度下载解压即可 注意zookeeper需要在zoo...

Kafka

Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。...

Troubleshooting

名词解释:     toubleshooting,有道在线词典的解释是:解决纷争;发现并解决故障。再来看一下维基百科的解释:Troubleshooting is a formof problem...
  • heyabo
  • heyabo
  • 2012年10月13日 13:44
  • 8052

Kafka 学习笔记(六)之Kafka Trouble Shooting (下)

书接上文,继续讲可能遇到的错误 5.Brokers drop out of ISR 可能原因: kafka默认的是大于4000message滞后的时候就drop ISRreplica.lag.ma...

kafka+zookeeper环境配置

kafka+zookeeper环境配置(Mac 或者 linux环境) 一.zookeeper下载与安装 1)下载 adeMacBook-Pro:zookeeper_soft...
  • yxz1025
  • yxz1025
  • 2016年05月31日 21:16
  • 2905

HADOOP自学笔记(六)安装Hadoop环境--Trouble Shooting

各位看我博客的同学,不好意思因为最近项目比较忙,事情

kafka学习笔记:知识点整理

转自:http://www.cnblogs.com/cyfonly/p/5954614.htmlkafka学习笔记:知识点整理一、为什么需要消息系统 复制代码 1.解耦:   允许你独立的扩展或...

Kafka 学习笔记(三)之Java Consumer客户端

写了producer,这篇我们来看看consumer。

《Apache Kafka》学习笔记

类似于SOA SOA是系统调用 1.解耦合 2.提高系统响应时间 未完
  • unix21
  • unix21
  • 2016年05月07日 23:08
  • 855

Kafka学习笔记(一):概念介绍

转载自:http://www.cnblogs.com/haoxinyue/p/5723986.html Kafka是一个开源的,分布式的,高吞吐量的消息系统。随着Kafka的版本迭代,日趋成...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Kafka 学习笔记(五)之Kafka Trouble Shooting (上)
举报原因:
原因补充:

(最多只允许输入30个字)