flink连接kafka报:org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic

2023-11-17

报错信息

Caused by: org.apache.flink.runtime.JobException: Recovery is suppressed by NoRestartBackoffTimeStrategy
	at org.apache.flink.runtime.executiongraph.failover.flip1.ExecutionFailureHandler.handleFailure(ExecutionFailureHandler.java:138)
	at org.apache.flink.runtime.executiongraph.failover.flip1.ExecutionFailureHandler.getFailureHandlingResult(ExecutionFailureHandler.java:82)
	at org.apache.flink.runtime.scheduler.DefaultScheduler.handleTaskFailure(DefaultScheduler.java:207)
	at org.apache.flink.runtime.scheduler.DefaultScheduler.maybeHandleTaskFailure(DefaultScheduler.java:197)
	at org.apache.flink.runtime.scheduler.DefaultScheduler.updateTaskExecutionStateInternal(DefaultScheduler.java:188)
	at org.apache.flink.runtime.scheduler.SchedulerBase.updateTaskExecutionState(SchedulerBase.java:677)
	at org.apache.flink.runtime.scheduler.SchedulerNG.updateTaskExecutionState(SchedulerNG.java:79)
	at org.apache.flink.runtime.jobmaster.JobMaster.updateTaskExecutionState(JobMaster.java:435)
	at sun.reflect.GeneratedMethodAccessor15.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:497)
	at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcInvocation(AkkaRpcActor.java:305)
	at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleRpcMessage(AkkaRpcActor.java:212)
	at org.apache.flink.runtime.rpc.akka.FencedAkkaRpcActor.handleRpcMessage(FencedAkkaRpcActor.java:77)
	at org.apache.flink.runtime.rpc.akka.AkkaRpcActor.handleMessage(AkkaRpcActor.java:158)
	at org.apache.flink.runtime.rpc.akka.AkkaRpcActor$$Lambda$152/1531429858.apply(Unknown Source)
	at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:26)
	at akka.japi.pf.UnitCaseStatement.apply(CaseStatements.scala:21)
	at scala.PartialFunction$class.applyOrElse(PartialFunction.scala:123)
	at akka.japi.pf.UnitCaseStatement.applyOrElse(CaseStatements.scala:21)
	at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:170)
	at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:171)
	at scala.PartialFunction$OrElse.applyOrElse(PartialFunction.scala:171)
	at akka.actor.Actor$class.aroundReceive(Actor.scala:517)
	at akka.actor.AbstractActor.aroundReceive(AbstractActor.scala:225)
	at akka.actor.ActorCell.receiveMessage(ActorCell.scala:592)
	at akka.actor.ActorCell.invoke(ActorCell.scala:561)
	at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:258)
	at akka.dispatch.Mailbox.run(Mailbox.scala:225)
	at akka.dispatch.Mailbox.exec(Mailbox.scala:235)
	... 4 more
Caused by: org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic metadata

程序配置

        //2、从Kafka读取数据
        Properties properties = new Properties();
        properties.setProperty("bootstrap.servers", "xx.xxx.xxx.xx:9092");
        properties.setProperty("group.id", "consumer-group");

尝试

1、在网上搜了半天,大多数都是说需要改kafka的server.properties配置,指明0.0.0.0,外网才能访问(其实是不对的,压根就不需要改,kafka安装好里面参数是啥就是啥)。

listeners=PLAINTEXT://0.0.0.0:9092

2、还有说程序中引入的scala依赖需要跟Linux上运行的kafka内嵌的scala版本一致(这个确实需要对应),但是改完都没什么用。
3、阿里云服务器的用户组端口也开放了。
4、后面就又搜到了一篇文章,试了试,原来真的是阿里云服务器有别名配置的原因。

最终解决

1、windows使用telnet工具排查下,发现能够正常通信,说明原因不在kafka配置这一块。

telnet xx.xxx.xxx.xx 9092

2、此时打开程序debug级别日志(开始默认是error级别,少了很多重要日志)查看,发现日志不停在报不知道该主机信息的错误,此时才发现这个主机名竟然是自己服务器的别名,明明自己配的是ip地址。

5464 [Kafka Fetcher for Source: Custom Source -> Sink: Print to Std. Out (6/16)#0] WARN  org.apache.kafka.clients.NetworkClient  - [Consumer clientId=consumer-consumer-group-27, groupId=consumer-group] Error connecting to node gZervbrgme7rrth0rthjrthu545:9092 (id: 0 rack: null)
java.net.UnknownHostException: gZervbrgme7rrth0rthjrthu545
	at java.net.InetAddress.getAllByName0(InetAddress.java:1259)
	at java.net.InetAddress.getAllByName(InetAddress.java:1171)
	at java.net.InetAddress.getAllByName(InetAddress.java:1105)
	at org.apache.kafka.clients.ClientUtils.resolve(ClientUtils.java:104)
	at org.apache.kafka.clients.ClusterConnectionStates$NodeConnectionState.currentAddress(ClusterConnectionStates.java:403)
	at org.apache.kafka.clients.ClusterConnectionStates$NodeConnectionState.access$200(ClusterConnectionStates.java:363)
	at org.apache.kafka.clients.ClusterConnectionStates.currentAddress(ClusterConnectionStates.java:151)
	at org.apache.kafka.clients.NetworkClient.initiateConnect(NetworkClient.java:949)
	at org.apache.kafka.clients.NetworkClient.access$500(NetworkClient.java:71)
	at org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:1122)
	at org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:1010)
	at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:545)
	at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:262)
	at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:233)

3、于是便将Windows机器上的hosts文件改了下映射,最后发现可以正常使用了。

xx.xxx.xxx.xx gZervbrgme7rrth0rthjrthu545

文章参考:https://blog.csdn.net/maoyuanming0806/article/details/80553632

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

flink连接kafka报:org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic 的相关文章

  • 芯片后端开发基础知识(二)

    目录 1 静态时序分析 Static Timing Analysis 2 波形的压摆 Slew 3 信号偏斜 Skew 4 时序路径 Clock Path 5 时序弧 Timing Arc 6 时钟域 Clock Domain 7 工作环境

随机推荐

  • 【IPC-UNIX网络编程】第4章管道和FIFO

    1 一个简单的客户 服务器例子 Client从标准输入 stdin 读进一个路径名 并把它写入IPC通道 Server从该IPC通道读出这个路径名 并尝试打开其文件 若server能打开该文件 它能读出其中的内容 并写入 不一定同一个 IP
  • 本科毕设——基于人脸识别的签到系统的研究

    本人普通四非本科 毕设选了这个比较大众且成熟的选题 四处借鉴后完成了论文 现在写写一些我完成毕设期间的历程 在完成论文开题报告后我开始寻求代码以期完成一个简易人脸识别签到系统的设计 开始我用了舍友选修课人工智能的大作业 他所采用的是传统的h
  • Adapter模式——设计模式学习笔记

    Adapter模式 一 意图 将一个类的接口转换成客户希望的另外一个接口 Adapter模式使得原本由于接口不兼容而不能在一起工作的那些类可以在一起工作 二 动机 为复用而设计的通用的类 总是存在一些特殊的情况 使其不能够使用或者完成相应的
  • pt工具常用命令

    pt工具介绍 Percona Toolkit简称pt工具 是Percona公司开发用于管理MySQL的工具 功能包括检查主从复制的数据一致性 检查重复索引 定位IO占用高的表文件 在线DDL等 DBA熟悉掌握后将极大提高工作效率 下载地址h
  • YOLO物体检测-系列教程2:YOLOV2整体解读

    YOLO 系列教程 总目录 YOLOV1整体解读 YOLOV2整体解读 YOLOV2提出论文 YOLO9000 Better Faster Stronger 1 YOLOV1 优点 快速 简单 问题1 每个Cell只预测一个类别 如果重叠无
  • 第二十七课、应用程序中的主窗口------------------狄泰软件学院

    一 主窗口的概念 1 应用程序中的主窗口 1 主窗口是与用户进行长时间交互的顶级窗口 2 程序的绝大多数功能直接由主窗口提供 3 主窗口通常是应用程序启动后显示的第一个窗口 4 整个程序由一个主窗口和多个对话框组成 2 Qt中的主窗口 1
  • leetcode排序算法总结—时间复杂度o(nlogn)-希尔/堆排/快排/归并小记

    排序算法总结 时间复杂度O nlogn 希尔 堆排序 快排 归并 希尔排序 有一段间隔的排序 可以逐个子表进行排序 然 例如王道 都给出便于计算机进行连续访问的程序算法 即依次按元素比较不同子表进行子表的调整 时间复杂度O n 1 3 最坏
  • 面向对象设计原则——开闭原则

    开闭原则是面向对象的可复用设计的第一块基石 它是最重要的面向对象设计原则 开闭原则由Bertrand Meyer于1988年提出 定义 开闭原则 Open Closed Principle OCP 一个软件实体应当对扩展开放 对修改关闭 即
  • 盘点2013:21款最优秀的开源数据库

    作为一名软件开发人员或DBA 其中一份必不可少的工作就是与数据库打交道 比如MS SQL服务器 MySQL Oracle PostgreSQL MongoDB等等 众所周知 其中MySQL是目前使用最广泛最好的免费开源数据库 此外 还有一些
  • C++11新特性——互斥锁、条件变量、原子类型

    1 互斥锁 C 11提供了四种互斥锁 mutex 互斥锁 timed mutex 带超时机制的互斥锁 recursive mutex 递归互斥锁 recursive timed mutex 带超时机制的递归互斥锁 包含头文件 include
  • http和Tcp的长连接和短连接

    转自 https www cnblogs com fubaizhaizhuren p 7523374 html http协议和tcp ip 协议的关系 1 http是应用层协议 tcp协议是传输层协议 ip协议是网络协议 2 IP协议主要解
  • Blender学习笔记(1)快捷键

    鼠标中键 转动视角 shift 中键 平移视角 ctrl 中键上下移动 缩放画面 shift 左键 多选 a是全选 b是多选 在编辑模式下是挤出 ctrl 右键 套索工具 ctrl shift 右键 diselect 中间滚轮滚动 缩放画面
  • Qt Creator 常见问题记录

    1 资源文件不显示 由于不小心删除了工程目录中的qrc文件 重新加回去后 发现项目树中Resources不见了 如下图 图中是显示的 解决办法 选择项目右键 清除 再重新缩放项目 即可看到 2 多个项目 如何选择某个项目作为启动项 VS中可
  • C++ SFINAE简介和std::enable_if_t的简单使用

    最近整理代码时发现了有人常会使用std enable if t 据说这个是C 14才支持的写法 因此再次勾起了我的整理欲 但要是熟悉std enable if的话其实也没啥太大难度 自认为这种使用方式主要提供了一种通过模板偏特化来实现的类型
  • 字符设备驱动相关函数

    Linux内核中 a 使用cdev结构体来描述字符设备 b 通过其成员dev t来定义设备号 分为主 次设备号 以确定字符设备的唯一性 c 通过其成员file operations来定义字符设备驱动提供给VFS的接口函数 如常见的open
  • ubuntu 与 windows terminal zsh 美化教程

    ubuntu 与 windows terminal zsh 美化教程 安装 zsh 和 oh my zsh 选择与安装主题 使用自带的主题 安装 powerlevel10k 主题 1 下载 p10k 主题 2 下载 Meslo LG M R
  • io使用率高运行堵塞怎么解决?linux系统由io使用率高引起的运行堵塞的解决方法

    1 在宝塔查看服务器负载100 而cpu和内存使用率都正常 输入top命令查看平均负载 查看结果负载果然很高 2 接着查看io使用情况 使用iotop工具 安装 yum install iotop 运行命令 iotop 如果安装不上是因为i
  • 实体类(VO,DO,DTO)的划分

    经常会接触到VO DO DTO的概念 本文从领域建模中的实体划分和项目中的实际应用情况两个角度 对这几个概念进行简析 得出的主要结论是 在项目应用中 VO对应于页面上需要显示的数据 表单 DO对应于数据库中存储的数据 数据表 DTO对应于除
  • Spring学习笔记2:注解开发、AOP思想、整合Mybatis、事务

    文章目录 7 使用注解开发 7 1 属性如何注入 1 Component 2 Value 7 2 衍生的注解 7 3 自动装配 7 4 作用域 1 Scope singleton 7 5 小结 9 使用java的方式配置Spring 9 1
  • flink连接kafka报:org.apache.kafka.common.errors.TimeoutException: Timeout expired while fetching topic

    报错信息 Caused by org apache flink runtime JobException Recovery is suppressed by NoRestartBackoffTimeStrategy at org apach