当前位置: 首页 > news >正文

Flink on yarn模式下,JobManager异常退出问题

这个问题排除了很久,其中更换了Flink版本,也更换了Hadoop版本一直无法解决,JobManager跑着跑着就异常退出了。资源管理器上是提示运行结束,运行状态是被Kill掉。

网上搜了一圈,都说内存不足、资源不足,配置错误。但是报错非常不明显。

最后终于看到了一条警告日志。

是客户端与jobmanager心跳超时,协商退出的jobmanager。后面就开始取消任务,回收资源逐步退出。除了这条关键退出日志,就没有明显的报错了。

2024-10-24 17:41:15,073 WARN  org.apache.flink.runtime.dispatcher.MiniDispatcher           [] - The heartbeat from the job client is timeout and cancel the job cc0f9dcadc79ee561632518539baf513. You can adjust the heartbeat interval by 'client.heartbeat.interval' and the timeout by 'client.heartbeat.timeout'

 其实提交Flink on Yarn的Pro-Job程序,从开始到结束都有心跳异常的错误。最后超过默认的超时时间180s就开始协商退出了,所以程序每次跑3分钟后就开始退出了。

2024-10-24 17:40:15,725 ERROR org.apache.flink.runtime.rest.handler.job.JobClientHeartbeatHandler [] - Exception occurred in REST handler: Request did not match expected format JobClientHeartbeatRequestBody.

 只在yarn-per-job与yarn-application模式下会触发,session模式下不会。因为session模式是一直存在jobmanager,他会接受任何客户端的任务。不需要用完就释放资源。

Flink 1.13.1、Flink1.15.2、Flink1.16.3都不存在以上问题

但是1.17.1和1.18.1、1.20都存在该问题。应该是1.17以上都存在

某大神说的1.17引入新的心跳机制:

The issue you're encountering is related to a new heartbeat mechanism
between the client and job in Flink-1.17. If the job does not receive any
heartbeats from the client within a specific timeout, it will cancel itself
to avoid hanging indefinitely.
To address this, you have two options:
1. Run your job in detached mode by adding the -d option in your command
line
2. Increase the client heartbeat timeout setting to a larger value, the
default value is 180 seconds

解决办法总结了下,大概三种

1、用旧点的Flink版本:例如Flink1.16.3以下;

2、分离模式,加 -d参数;

3、增加心跳超时时间;这个其实无法根本解决; 

新版本还是多坑,其实很有一个可能flink1.17开始去除java代码,导致的bug问题

http://www.lryc.cn/news/467991.html

相关文章:

  • 面对AI算力需求激增,如何守护数据中心机房安全?
  • Connection --- 连接管理模块
  • iconfont图标放置在某个元素的最右边
  • Android10 recent键相关总结
  • Ajax:原生ajax、使用FormData的细节问题,数据的载体
  • 【HuggingFace 如何上传数据集 (2) 】国内网络-稳定上传图片、文本等各种格式的数据
  • GNOME桌面安装dock
  • 移动app测试有哪些测试类型?安徽软件测试中心分享
  • Android 10.0 截屏流程
  • Axure零基础深入浅出的讲解
  • PyTorch求导相关
  • Halcon基础-瓶盖带角度的OCR批量识别
  • php语法学习
  • JavaWeb合集22-Apache POI
  • DDD重构-实体与限界上下文重构
  • MATLAB Simulink (二)高速跳频通信系统
  • 智能合约分享
  • 【MR开发】在Pico设备上接入MRTK3(二)——在Unity中配置Pico SDK
  • 【Java】探秘正则表达式:深度解析与精妙运用
  • 2.6.ReactOS系统中从内核中发起系统调用
  • chat_gpt回答:python获取当前utc时间,将xml里时间tag里的值修改为当前时间
  • 机器学习-语言分析
  • Oracle 常见索引扫描方式概述,哪种索引扫描最快!
  • 字符串(3)_二进制求和_高精度加法
  • 《神经网络:智能时代的核心技术》
  • pdf内容三张以上转图片,使用spire.pdf.free
  • 游戏、软件、开源项目和资讯
  • Acrel-1000变电站综合自动化系统及微机在化工企业中的应用方案
  • [Linux] CentOS7替换yum源为阿里云并安装gcc详细过程(附下载链接)
  • 在Java中创建多线程的三种方式