flink jobmanager 终止任务失败问题
flink jobmanager 终止任务失败问题
:root { --default-font: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Microsoft YaHei Light", sans-serif; --font-monospace: 'Source Code Pro', monospace; --background-primary: #ffffff; --background-modifier-border: #e0e0e0; --text-accent: #705dcf; --text-accent-hover: #7a6ae6; --text-normal: #2e3338; --background-secondary: #f2f3f5; --background-secondary-alt: #fcfcfc; --text-muted: #888888; --font-mermaid: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Inter", "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Microsoft YaHei Light", sans-serif; --text-error: #E4374B; --background-primary-alt: #fafafa; --background-accent: ''; --interactive-accent: hsl( 254, 80%, calc( 68% + 2.5%)); --background-modifier-error: #E4374B }
body, input { font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif }
code, kbd, pre { font-family: "Roboto Mono", "Courier New", Courier, monospace; background-color: rgba(245, 245, 245, 1) }
pre { padding: 1em 0.5em }
table { background: rgba(255, 255, 255, 1); border: 1px solid rgba(102, 102, 102, 1); border-collapse: collapse; padding: 0.5em }
table thead th, table tfoot th { text-align: left; background-color: rgba(234, 234, 234, 1); color: rgba(0, 0, 0, 1) }
table th, table td { border: 1px solid rgba(221, 221, 221, 1); padding: 0.5em }
table td { color: rgba(34, 34, 34, 1) }
.callout[data-callout="abstract"] .callout-title, .callout[data-callout="summary"] .callout-title, .callout[data-callout="tldr"] .callout-title, .callout[data-callout="faq"] .callout-title, .callout[data-callout="info"] .callout-title, .callout[data-callout="help"] .callout-title { background-color: rgba(130, 142, 231, 1) }
.callout[data-callout="tip"] .callout-title, .callout[data-callout="hint"] .callout-title, .callout[data-callout="important"] .callout-title { background-color: rgba(52, 187, 230, 1) }
.callout[data-callout="success"] .callout-title, .callout[data-callout="check"] .callout-title, .callout[data-callout="done"] .callout-title { background-color: rgba(163, 224, 72, 1) }
.callout[data-callout="question"] .callout-title, .callout[data-callout="todo"] .callout-title { background-color: rgba(73, 218, 154, 1) }
.callout[data-callout="caution"] .callout-title, .callout[data-callout="attention"] .callout-title { background-color: rgba(247, 208, 56, 1) }
.callout[data-callout="warning"] .callout-title, .callout[data-callout="missing"] .callout-title, .callout[data-callout="bug"] .callout-title { background-color: rgba(235, 117, 50, 1) }
.callout[data-callout="failure"] .callout-title, .callout[data-callout="fail"] .callout-title, .callout[data-callout="danger"] .callout-title, .callout[data-callout="error"] .callout-title { background-color: rgba(230, 38, 31, 1) }
.callout[data-callout="example"] .callout-title { background-color: rgba(210, 59, 231, 1) }
.callout[data-callout="quote"] .callout-title, .callout[data-callout="cite"] .callout-title { background-color: rgba(170, 170, 170, 1) }
.callout-icon { flex: 0 0 auto; display: flex; align-self: center }
svg.svg-icon { height: 18px; width: 18px; stroke-width: 1.75px }
.callout { overflow: hidden; margin: 1em 0; box-shadow: 0 2px 2px rgba(0, 0, 0, 0.14), 0 1px 5px rgba(0, 0, 0, 0.12), 0 3px 1px -2px rgba(0, 0, 0, 0.2); border-radius: 4px }
.callout-title { padding: 0.5em; display: flex; gap: 8px; font-size: inherit; color: rgba(0, 0, 0, 1); line-height: 1.3em }
.callout-title-inner { font-weight: bold; color: rgba(0, 0, 0, 1) }
.callout-content { overflow-x: auto; padding: 0.25em 0.5em; color: rgba(34, 34, 34, 1); background-color: rgba(255, 255, 255, 1) !important }
ul.contains-task-list { padding-left: 0; list-style: none }
ul.contains-task-list ul.contains-task-list { padding-left: 2em }
ul.contains-task-list li input[type="checkbox"] { margin-right: 0.5em }
.callout-table, .callout-table tr, .callout-table p { width: 100%; padding: 0 }
.callout-table td { width: 100%; padding: 0 1em }
.callout-table p { padding-bottom: 0.5em }
.source-table { width: 100%; background-color: rgba(245, 245, 245, 1) }
现象
用户 flink 任务提交客户端侧抛出请求错误,经排查发现是客户端主动 cancle 的.接着排查 yarn app 日志,发现本质错误是 jm 退出了,接着看 jm 日志,jm 退出是由于失去了 leadership 导致的
排查过程
了解背景发现,用户有 flink ha任务,也有非 ha 任务, ha 使用的是基于 zookeeper 的实现
ha 任务是由于 jm 与选主的 zk 间的session 超时,导致jm 失去 leader
非 ha 任务是由于 jm 与 tm 间的心跳超时,jm 将 tm 置为 failed 状态,且没有配置 Restart Strategy
超时优化措施:
1.优化超时任务的 gc,通过 jstat 命令可以看到 tm jvm 的 old 分区占比 在 85 以上,
建议增大 flink 的 tm 内存参数 :
-D taskmanager.memory.task.heap.size
-D taskmanager.memory.managed.size
-D taskmanager.memory.task.off-heap.size
在原来值的基础上增大 50%
2.优化超时任务的超时时间
增加 zk server ticktime (已经调整)
增加 jm 和 tm 的心跳超时时间 heartbeat.timeout = 180000
解决办法
- 把 基于 ZooKeeper 的 HA 实现 改成 Flink on YARN 模式下的高可用,这样利用 yarn 自动拉起失败的 jobmanager 来解决实现任务的高可用
- 通过提交平台侧来实现任务的高可用,既让任务快速失败,然后通过平台侧的检测来重新提交来实现,需要配置如下参数,关闭 yarn 的自动拉起机制,从而让任务快速失败,被平台侧检测到,发起重新提交
yarn.application-attempts: 1
yarn.application-attempt-failures-validity-interval: -1
ZooKeeper参数调优 - skyl夜 - 博客园 (cnblogs.com)
Flink JobManager 高可用详解 - 白墨的博客 | Ink's Blog (baixin.ink)
flink jobmanager 终止任务失败问题的更多相关文章
- 搭建高可用的flink JobManager HA
JobManager协调每个flink应用的部署,它负责执行定时任务和资源管理. 每一个Flink集群都有一个jobManager, 如果jobManager出现问题之后,将不能提交新的任务和运行新任 ...
- Flink 源码解析 —— Flink JobManager 有什么作用?
JobManager 的作用 https://t.zsxq.com/2VRrbuf 博客 1.Flink 从0到1学习 -- Apache Flink 介绍 2.Flink 从0到1学习 -- Mac ...
- Flink JobManager 和 TaskManager 原理
转自:https://www.cnblogs.com/nicekk/p/11561836.html 一.概述 Flink 整个系统主要由两个组件组成,分别为 JobManager 和 TaskMana ...
- Flink JobManager HA模式部署(基于Standalone)
参考文章:https://ci.apache.org/projects/flink/flink-docs-release-1.3/setup/jobmanager_high_availability. ...
- Flink – JobManager.submitJob
JobManager作为actor, case SubmitJob(jobGraph, listeningBehaviour) => val client = sender() val jobI ...
- flink on yarn启动失败
我启动hadoop on yarn 集群后 [root@node1 flink-1.6.1]# ./bin/yarn-session.sh -n 2 -jm 1024 -tm 1024 报的如下错误 ...
- Apache Flink jobmanager/logs路径遍历CVE-2020-17519
影响版本 1.11.0 1.11.1 1.11.2 poc http://192.168.49.2:8081/jobmanager/logs/..%252f..%252f..%252f..%252f. ...
- [bug] flink on yarn 启动失败
参考 https://www.cnblogs.com/huangguoming/p/11732663.html
- Flink on yarn以及实现jobManager 高可用(HA)
on yarn https://ci.apache.org/projects/flink/flink-docs-release-1.8/ops/deployment/yarn_setup.html f ...
- Flink 源码解析 —— JobManager 处理 SubmitJob 的过程
JobManager 处理 SubmitJob https://t.zsxq.com/3JQJMzZ 博客 1.Flink 从0到1学习 -- Apache Flink 介绍 2.Flink 从0到1 ...
随机推荐
- 同策略强化学习算法可以使用经验缓存池(experience buffer)吗 ??? 设计一个基于缓存池的改进reinforce算法,给出初步的尝试 ---------- (reinforce + experience buffer)
本文使用代码地址: https://gitee.com/devilmaycry812839668/reinforce_with_-experience-buffer ================= ...
- ChatGPT的训练费用以及成功原因
参考: https://baijiahao.baidu.com/s?id=1772914234034992726&wfr=spider&for=pc ================= ...
- windows10开启电源模式中的休眠选项
使用管理员权限开启PowerShell,输入命令: powercfg -h on
- Centos7安装mysql8.0教程
1.背景 centos7安装mysql8.0 2.安装步骤 步骤一:安装准备工作 1.查看是否有安装过mysql rpm -qa | grep -i mysql 2.删除mysql yum -y re ...
- ArgoWorkflow 教程(一)--DevOps 另一选择?云原生 CICD 初体验
本文主要记录了如何使用 ArgoWorkflow 构建流水线,以及 ArgoWorkflow 中 的 Workflow.Template 等概念模型. 本文主要分析以下问题: 1)如何创建流水线 2) ...
- 结构开发笔记(三):solidworks软件(二):小试牛刀,绘制一个立方体
前言 solidworks草图大师,基本的使用过程. 所有的零件基础都是从平面绘制开始,然后凸出来厚度. 本篇绘制一个简单的立方体,熟悉基本操作. 立方体绘制过程 选取一个平面绘制一个 ...
- 关于EF延时加载的面试题
public async Task<ActionResult> GetData() { var data = (from leftdata in GetLeft() join rightd ...
- DDD建模后写代码的正确姿势(Java、dotnet双平台)
本文书接上回<一种很变态但有效的DDD建模沟通方式>,关注公众号(老肖想当外语大佬)获取信息: 最新文章更新: DDD框架源码(.NET.Java双平台): 加群畅聊,建模分析.技术交流: ...
- docker启动一个不停止的centos系统容器
启动的镜像后加上/usr/sbin/init ,前提是镜像中没有设置entrypoint
- Ubuntu 笔记本设置合盖不息屏
编辑 logind.conf 文件 你可以通过编辑 /etc/systemd/logind.conf 文件来控制盖子关闭时的行为: 找到以下几行(如果不存在,可以手动添加): #HandleLidSw ...