关于org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.问题的解决

关于org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.问题的解决

今天在测试自己编写的kafka消息发送接收小例子时,一直报org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms的问题,

org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

记录一下解决问题的过程。
1.首先我检查了bootstrap.servers,TOPIC = "kafkatest"与集群的对应并没有问题
2.通过查阅资料,我怀疑是我的kafka依赖与集群kafka版本不一致,因为我是用ambai搭建并管理的集群,所以与传统的手搭集群还是有些区别。

  • 查看我集群的kafka版本:
    命令:
cd /usr/hdp/2.5.3.0-37/kafka/libs
ls

在这里插入图片描述通过图片上我们可以看到有很多类似kafka_2.10-0.10.0.2.5.3.0-37.jar的jar文件,其中2.10代表scala的版本,0.10.0代表kafka版本,2.5.3.0代表ambari的版本
然后查看我项目中的pom.xml版本,并没有问题,所以也排除了版本不一致的可能性

  <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka -->
        <dependency>
            <groupId>org.apache.kafka</groupId>
            <artifactId>kafka_2.10</artifactId>
            <version>0.10.0.0</version>
        </dependency>

3.排除前两种情况的可能性后,我认为可能是我kafka监听端口连接不上,所以我查看了kafka配置文件中监听端口发现显示为

listeners=PLAINTEXT://localhost:6667

我意识到这可能就是问题所在,因为我连接的是远程服务器的kafka服务,这里就需要改成IP和正确的端口号,如果是手动搭建的kafka集群,直接修改配置文件即可。

  • 命令(在kafka目录下):
cd config
vi server.properties

在这里插入图片描述
但如果你和我一样是ambari搭建的集群,那就不能直接手动改配置文件,需要在ambari管理界面去改kafka属性,因为如果集群重启,会自动还原所有手动更改的配置
在这里插入图片描述
去测试一下,成功连接kafka集群,并且正常收发消息,问题解决。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这个错误是Kafka生产者在发送消息时与Kafka broker通信失败所引起的。常见的原因包括Kafka broker不可用、网络故障、Kafka集群中的分区已满等。 以下是一些可能的解决方法: 1. 检查Kafka broker是否可用。您可以尝试使用Kafka命令行工具来连接Kafka broker并测试发送消息。例如,在命令行中运行以下命令: ``` kafka-console-producer.sh --broker-list localhost:9092 --topic test ``` 如果连接成功并且您可以发送消息,则Kafka broker应该是可用的。 2. 检查网络连接是否正常。您可以尝试使用ping命令或telnet命令来测试与Kafka broker的网络连接。例如,在命令行中运行以下命令: ``` ping kafka-broker-hostname ``` 或者: ``` telnet kafka-broker-hostname 9092 ``` 如果网络连接正常,则应该可以连接到Kafka broker。 3. 检查Kafka集群中的分区是否已满。如果分区已满,则不能再发送更多的消息。您可以使用Kafka命令行工具来查看集群中的分区状态。例如,在命令行中运行以下命令: ``` kafka-topics.sh --zookeeper zookeeper-hostname:2181 --describe --topic test ``` 如果分区已满,则您需要增加分区或者删除一些旧的消息以释放空间。 4. 检查Kafka生产者的配置是否正确。您需要确保生产者的配置与Kafka broker的配置相匹配。例如,您需要检查生产者的bootstrap.servers参数是否正确设置为Kafka broker的主机名和端口号。 如果以上方法都无法解决问题,请尝试查看Kafka生产者的日志以获取更多详细信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值