Flink container exit 143 问题排查

news2024/11/19 5:24:51

你好,我是 shengjk1,多年大厂经验,努力构建 通俗易懂的、好玩的编程语言教程。 欢迎关注!你会有如下收益:

  1. 了解大厂经验
  2. 拥有和大厂相匹配的技术等

希望看什么,评论或者私信告诉我!

文章目录

    • 一、前言
    • 二、问题排查
        • 2.1 查看数据量,发现数据量不大,所以肯定不是因为数据量导致的
        • 2.2 因为比较着急,所以想着先增大内存试试,后续在排查问题
        • 2.3 没有办法了,只能先排查问题了
        • 2.4 进一步排查,查看 GC log
        • 2.5 结论
    • 三、总结


一、前言

写了一个 Flink 作业基于状态计算各种汇总数据,刚开始没有问题是正常的,做完一个 checkpoint 后,就开始报错,错误内容如下:

2024-05-07 18:17:19.840 INFO  org.apache.flink.runtime.resourcemanager.active.ActiveResourceManager - Worker container_e1414_1713947523302_994380_01_000007 is terminated. Diagnostics: Container container_e1414_1713947523302_994380_01_000007 marked as failed.
 Exit code:239.
 Diagnostics:[2024-05-07 18:17:16.697]Exception from container-launch.
Container id: container_e1414_1713947523302_994380_01_000on id: container_e1414_1713947523302_994380_01_0000007
Exit code: 239
Exception message: Launch container failed
Shell output: main : command provided 1
main : run as user is work
main : requested yarn user is s_workspace_11153_krb
Getting exit code file...
Creating script paths...
Writing pid file...
Writing to tmp file /home/work/hdd7/yarn/zjyprc-hadoop/nodemanager/nmPrivate/application_1713947523302_994380/container_e1414_1713947523302_994380_01_000007/container_e1414_1713947523302_994380_01_000007.pid.tmp
Writing to cgroup task files...
Failed to set effective group id 0 - Operation not permitted
Failed to set effective group id 0 - Operation not permitted
Creating local dirs...
Launching container...
Getting exit code file...
Creating script paths...

一看就是Flink off-heap 超出 container 的内存了,没有多想,按照之前的经验直接调大 Flink 参数

taskmanager.memory.jvm-overhead.fraction

重启后发现 ,Flink TaskManager FullGC 还是很严重

图片.png

二、问题排查

2.1 查看数据量,发现数据量不大,所以肯定不是因为数据量导致的

图片.png

2.2 因为比较着急,所以想着先增大内存试试,后续在排查问题

内存从 2G 增加到 4G 最后增加到 16G,问题依然存在

2.3 没有办法了,只能先排查问题了

根据 taskmanager GC 监控找到比较严重几个 container,
图片.png

打开 Fink 自带的监控界面观察,目前看怀疑是因为 JVM Metadata 导致的
图片.png

2.4 进一步排查,查看 GC log
2024-05-08T11:11:35.075+0800: 22.379: [GC (Metadata GC Threshold) [PSYoungGen: 428583K->21165K(2160128K)] 451157K->43747K(7097344K), 0.0344272 secs] [Times: user=0.08 sys=0.02, real=0.04 secs] 

2024-05-08T11:11:35.109+0800: 22.413: [Full GC (Metadata GC Threshold) [PSYoungGen: 21165K->0K(2160128K)] [ParOldGen: 22581K->35384K(4937216K)] 43747K->35384K(7097344K), [Metaspace: 34235K->34235K(1079296K)], 0.2253439 secs] [Times: user=0.54 sys=0.03, real=0.22 secs]

log 解释

 - GC (Metadata GC Threshold):表示进行的是元数据垃圾回收操作。 
 - [PSYoungGen: 428583K->21165K(2160128K)]:表示年轻代垃圾回收前后的内存情况,从428583K减少到21165K,总共可用的内存为2160128K。 
 - 451157K->43747K(7097344K):表示整个Java堆内存垃圾回收前后的内存情况,从451157K减少到43747K,总共可用的内存为7097344K。 
 - 0.0344272 secs:表示垃圾回收操作的耗时为0.0344272秒。 
 - [Times: user=0.08 sys=0.02, real=0.04 secs]:表示不同类型的CPU时间耗费,其中用户态CPU时间为0.08秒,内核态CPU时间为0.02秒,实际时间为0.04秒。

确实是因为 Metadata 内存分配失败导致的 full gc

2.5 结论

确实是因为 Metadata 内存分配失败导致的 full gc

于是调大 JVM metadata 阈值

taskmanager.memory.jvm-metaspace.size=512mb

三、总结

在开发Flink作业时遇到FullGC严重的问题,通过查看数据量、增大内存和排查后发现是因为Metadata内存分配失败导致的。最终成功解决了问题,给出了调大JVM metadata阈值的解决方法。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1655479.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Flask SQLAlchemy 技术指南

文章目录 什么是 Flask SQLAlchemy?安装 Flask SQLAlchemy创建 Flask 应用和数据库模型添加和查询数据运行 Flask 应用总结**数据库迁移(Database Migrations)****复杂查询****关系模型****事务处理****性能优化****安全性****扩展功能** Fla…

【2024高校网络安全管理运维赛】巨细记录!

2024高校网络安全管理运维赛 文章目录 2024高校网络安全管理运维赛MISC签到考点:动态图片分帧提取 easyshell考点:流量分析 冰蝎3.0 Webphpsql考点:sql万能钥匙 fileit考点:xml注入 外带 Cryptosecretbit考点:代码阅读…

Pyecharts的编程环境准备

一,准备Python编程环境: Python版本:3.10以上,最高版本3.12 https://www.python.org/ 进入官网,点击downloads—>windows进入下载页面,搜索”3.10.6”找到指定版本,下载并安装64位Installer…

可视化-实验四- seaborn工具包绘图基础及关系

一、任务一 1.1 开发环境 多种选择方案(大家根据自己的编程习惯,选择适合自己的工具),老师授课如下:Anaconda3Jupter 1.2 特殊包 导入工具包设置中文显示: import matplotlib.pyplot as plt import p…

HTTP常见面试题(二)

3.1 HTTP 常见面试题 HTTP特性 HTTP 常见到版本有 HTTP/1.1,HTTP/2.0,HTTP/3.0,不同版本的 HTTP 特性是不一样的。 HTTP/1.1 的优点有哪些? HTTP 最突出的优点是「简单、灵活和易于扩展、应用广泛和跨平台」。 1. 简单 HTTP…

Metasploit Framework(MSF)从入门到实战(二)

Metasploit Framework(MSF)从入门到实战(一)_安装msf更新-CSDN博客 MSF模块介绍 MSF有7个模块,分别对下面目录下的7个子文件夹: auxiliary(辅助模块 ) show auxiliary //查看所有…

vue视图不刷新强制更新数据this.$forceUpdate()

在vue中,更新视图数据,不刷新页面,需要强制更新数据才可以 前言 在对数据就行添加和删除时,发现页面视图不更新,排除发现需要强制更新才可以 点击添加或删除,新增数据和删除就行,但在不使用fo…

二层交换机与路由器连通上网实验

华为二层交换机与路由器连通上网实验 二层交换机是一种网络设备,用于在局域网(LAN)中转发数据帧。它工作在OSI模型的第二层,即数据链路层。二层交换机通过学习和维护MAC地址表,实现了数据的快速转发和广播域的隔离。 实…

Spring-依赖注入的处理过程

前置知识 1 入口 DefaultListableBeanFactory#resolveDependency 2 每个依赖都有对应的DependencyDescriptor 3 自定绑定候选对象处理器AutowireCapableBeanFactory 注入处理 我们可以看到AutowireCapableBeanFactory中有两个方法: 第一个是单个注入:…

CCF-Csp算法能力认证, 202312-1仓库规划含解析

前言 推荐书目,在这里推荐那一本《算法笔记》(胡明),需要PDF的话,链接如下 「链接:https://pan.xunlei.com/s/VNvz4BUFYqnx8kJ4BI4v1ywPA1?pwd6vdq# 提取码:6vdq”复制这段内容后打开手机迅雷…

高职学院建设人工智能专业群可行性分析

一、人工智能技术人员的需求分析 随着科技的迅猛发展和数字化转型的深入,人工智能(AI)已成为推动产业升级和社会变革的重要力量。从当前行业趋势和技术发展来看,对于人工智能技术人员的需求预计将呈现爆炸性增长的态势。 首先&am…

智慧仓储数字孪生三维可视化平台,提升企业物流效率和转型升级

智慧仓储数字孪生三维可视化平台,提升企业物流效率和转型升级。智慧仓储数字孪生三维可视化平台,正逐渐成为现代企业物流领域的重要工具。它通过集成先进的数字技术,实现仓储管理的全面智能化,为企业的物流效率和转型升级提供了有…

软考143-下午题-【试题二】:E-R图、关系模式

一、分值与目标 15分,目标10 二、题目形式 示例: 三、E-R图的基本图形元素 示例: 3-1、实体 1、弱实体 在现实世界中有一种特殊的联系,这种联系代表实体间的所有 (Ownership) 关系,例如:职工与家属的联系…

WPF/C#:ProgressBar的基本使用

前言 在日常开发过程中,如果遇到需要一段时间才能完成的任务,通常需要给用户一个进度条提示。今天给大家介绍的是WPF/C#中ProgressBar的基本使用。 ProgressBar的介绍 在WPF(Windows Presentation Foundation)中,Pr…

AI图书推荐:ChatGPT在真实商业世界中的应用

《ChatGPT在真实商业世界中的应用》 (Unleashing The Power of ChatGPT: A Real World Business Applications)首先概述了ChatGPT及其在对话式人工智能领域的影响。接着,你将深入了解ChatGPT的技术方面,理解机器学习算法和自然语言处理如何在后台工作。然…

【GPT调用】本地使用python调用GPT接口

python调用GPT接口 环境变量设置主调用方法执行结果 环境变量设置 .env文件中配置GPT环境变量 api_key"你的GPT-API-KEY" urlhttps://ai-proxy.ksord.com/wps.openai.azure.com/openai/deployments/gpt-4-32k/chat/completions?api-version2023-09-01-preview主调…

红帽为 Red Hat OpenShift AI 扩大与 Elasticsearch 向量数据库的合作

作者:来自 Elastic Aditya Tripathi 红帽和 Elastic 今天宣布开展合作,以便在 Red Hat OpenShift AI 上集成 Elasticsearch 向量数据库。 Red Hat OpenShift 用户现在可以通过红帽生态系统目录实施 Elasticsearch 以进行向量搜索和检索增强生成 (RAG) 应…

Blender动画与云渲染:创造高质量作品的未来路径

Blender作为开源的3D图形软件,在多个领域广受欢迎。但随着项目复杂度提升,传统渲染方式受限。云渲染技术的兴起突破了这些限制,为创作者提供了更自由、高效的创作环境。 一、Blender动画项目的挑战 传统上,Blender动画渲染需要依…

C++新手村指南:入门基础

目录 C概念 C发展史 C关键字(C98) 命名空间 命名空间的定义 命名空间的使用 C中的输入&&输出 缺省参数 缺省参数的概念 缺省参数的分类 函数重载 函数重载概念 函数重载实现 引用 引用的概念 引用的特性 常引用 引用的使用场景…

SpringBoot分页查询报错Bug

项目场景: 提示:这里简述项目相关背景: 使用pageHepler分页查询报错信息为 class java.util.ArrayList cannot be cast to class com.github.pagehelper.Page问题描述 提示:这里描述项目中遇到的问题: 实现条件分…