天天看点

Kafka学习笔记之kafka常见报错及解决方法(topic类、生产消费类、启动类)

Kafka报错

解决方法:Failed to acquire lock on file .lock in /var/log/kafka-logs.--问题原因是有其他的进程在使用kafka,ps -ef|grep kafka,杀掉使用该目录的进程即可;

原因是配置文件:kafka_client_jaas.conf中配置有问题,keyTab的路径不对,导致的;

报错关键信息:Failed to construct kafka producer

解决方法:配置文件问题:KafkaClient中serviceName应该是kafka,之前配置成了zookeeper;重启后,就好了;

配置文件如下:

问题描述:

衍生问题:

kafka生产消息就会报错:

把KafkaClient更改为如下的配置,就可以 了:

消费时报错:Error while executing topic command : replication factor: 1 larger than available brokers: 0

解决办法:/confluent-3.0.0/bin 下重启daemon

然后zk重启;sh zkCli.sh -server ai186;

/usr/hdp/2.4.2.0-258/zookeeper/bin/zkCli.sh --脚本的目录

如果还报错,可以查看配置文件中下面的配置:

zookeeper.connect=dcp18:2181/kafkakerberos; --是group名称

解决方法:配置文件中下面的参数中的User的U必须是大写;

super.users=User:kafka

或者有可能是server.properties中的adver.listen的IP是不对的,有可能是代码中写死的IP;

无法消费,则查看kafka的启动日志中的报错信息:日志文件的所属组不对,应该是hadoop;

或者,查看kafka对应的zookeeper的配置后缀,是否已经更改,如果更改了,则topic需要重新生成才行;

更改代码中,tomcat的心跳超时时间如下:

没有改之前的:;

重启后,日志中显示:

创建topic时报错:

问题定位:是jaas文件有问题:

解决方法:server.properties文件中的super.user要和jaas文件中的keytab的principle一致;

kafka_server_jaas.conf文件改为: