在IDEA上使用Flink 无法消费Kafka 【一段时间后报错:TimeoutException: Timed out waiting for a node assignment. Call: d】

在IDEA上写Flink消费者,想要消费Kafka,可是在Kafka生产者模式下生产数据却无法正常被消费

确认了消费Kafka的服务器参数(setBootstrapServers),和消费主题(setTopics)无误后

确认了zookeeper和kafka已经开启

启动zookeeper命令:

zookeeper安装路径/bin/zkServer.sh start

启动Kafka命令(以我的Kafka安装地址为例):

nohup /export/server/kafka/bin/kafka-server-start.sh /export/server/kafka/config/server.properties >> /export/server/kafka/kafka-server.log 2>&1 &

语法格式:
nohup kafka-server-start.sh         配置文件在哪 >> 日志文件 &

kafka-server-start.sh                     kafka的启动脚本
/export/server/kafka/config/server.properties           kafka 的配置文件
/export/server/kafka/kafka-server.log 2>&1               kafka的日志写到哪里

等待一段时间后,最后一行具体报错如下

 

也是百思不得其解,因为报错原因太过广泛,想要查看具体的报错原因,于是在pom文件下添加下面的依赖项

代码片段取自https://blog.csdn.net/heiren_a/article/details/123679436

    <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
          <version>1.7.7</version>
      </dependency>
      <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>1.2.17</version>
      </dependency>
 

src/main/resources文件夹下创建一个名为log4j.properties的文件,在这个文件下面添加以下内容。

log4j.rootLogger=info,console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=INFO
log4j.appender.console.ImmediateFlush=true
log4j.appender.console.Target=System.out
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

这时候我们重新运行代码

可以看到主要的报错是无法连接上虚拟机。经过查阅相关资料得知本质原因是kafka配置文件server.properites中默认监听hostname

原文资料https://blog.csdn.net/qq_34484062/article/details/129991949

我的解决方法:

到kafka安装路径下的config/server.properties

vim server.properties

将他修改为虚拟机的本机地址:9092,具体如图所示(node2,node3一样如此),保存退出,并且重新启动Kafka

Kafka生成生产者,并启动IDEA代码

问题解决可以正常消费。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值