Kafka集群错误汇总

本人的Kafka版本是最新版kafka_2.11-2.0.0,集群环境一台ubuntu16.04,两台centos7,使用win7编写代码,下面总结一些使用Kafka过程遇到的一些坑。

LEADER_NOT_AVAILABLE

现象:刚搭建完集群之后,建立一个Topic,命令行提示创建成功,但是Kafka Server的日志一直报类似于如下错误:this server is not the leader for that topic-partition,LEADER_NOT_AVAILABLE 等信息,创建出来的topic无法消费,生产者也无法发送消息。
原因:host配置有问题,我在centos的host的配置文件中的127.0.0.1那一行中加入了主机名,然后就造成,zookeeper中记录的三个broker中,ubuntu的是主机名,两台centos记录的地址都是localhost,所以虽然三台机器的Kafka Server都成功运行起来了,但是实际起作用的只有ubuntu,所以创建topic的时候,只要replication-factor大于1,就肯定会出问题,等于1实测也会报错。
解决方案:修改host,127.0.0.1那一行中不要加入主机名。
另附2个有用的链接:kafka报错LEADER_NOT_AVAILABLE,kafka消费端测试错误怎么解决kafka.common.NotLeaderForPartitionException。

windows端生产者和消费者程序无法运行

现象:命令行出现无法解析主机等提示。
原因:Kafka Server启动后,会在Zookeeper上注册自己的IP和端口号,客户端就通过这个IP和端口号来连接。在我的环境下,由于java.net.InetAddress.getCanonicalHostName调用拿到的HostName是主机名,所以默认注册到Zookeeper上的是主机名,Zookeeper给windows返回的也是主机名,由于windows的host没有配,所以无法解析主机名的ip地址。
解决方法:
法1:配置server.properties的advertised.listeners=PLAINTEXT://ip:9092,将3个broker的配置文件中的这个配置项都改为自己的ip。
法2:为windows配置host文件。

Kafka Stream的WordCount的Demo无法运行

现象:报错: java.lang.UnsatisfiedLinkError,详细信息见:UnsatisfiedLinkError on Lib rocks DB dll when developing with Kafka Streams。
原因:不太清楚。。貌似是rocksdbjni版本的问题。
解决方案:我把rocksdbjni版本改成5.0.1然后就可以正常运行了,另附另外一个链接:executing-kafka-stream-example-with-eclipse-fails-with-unsatisfiedlinkerror-for。

你可能感兴趣的:(大数据组件)