Spark作业运行异常慢的问题定位和分析思路

一直很慢 🐢

  • 运行中状态、卡住了,可以从以下两种方式入手:

    • 如果 Spark UI 上,有正在运行的 Job/Stage/Task,看 Executor 相关信息就好。
      • 第一步,如果发现卡住了,直接找到对应的 Executor 页面:
        在这里插入图片描述
      • 第二步,不断的刷新,看看 Task 线程栈执行的内容是什么:
        在这里插入图片描述

  • 如果 Spark UI 上,没有正在运行的 Job/Stage/Task,看 Driver 相关信息就好。

    • 第一选择是看 Driver 的 ThreadDump,分析 Driver 在执行什么逻辑。
      在这里插入图片描述
    • 第二选择,如果发现 Driver 的线程栈没异常的时候,可以结合 driver 日志查看日志最后的信息是什么。
    • 在这里插入图片描述
  • 运行结束了

    • 首先看看是否有执行时间明显比较长(或者对比历史执行时间比较长)的 Job, Stage
      • 查看 Jobs 页面,寻找运行耗时相对较长的作业(注意:这里的 Duration 时间是 Job 启动时间和结束时间的耗时,不代表真正的耗时,例如可能存在多个 Job 同时运行,就会出现受资源影响的情况,可能 Duration 比较长,实际真正执行时间比较短的情况):
        在这里插入图片描述
      • 查看 Stages 页面,确定运行时间比较长的 Stage(注意,这里的 Duration 和 Job 的 Duration 是一样的,只代表执行起始时间的跨度,不代表实际执行耗时)
        在这里插入图片描述
      • 查看 Duration 时间比较长的 Stage 的实际执行时间,找到执行时间较长的 Stage:
        在这里插入图片描述
      • 还可以查看所有成功 Task 的执行 Metrics 的直方统计图,以便分析数据倾斜等情况,同时注意 GC 时间的占比,分析是否存在内存问题。
        在这里插入图片描述
        这里是提取的图片中的文字内容:

注意:

上面提到了执行慢可能是 资源问题 也可能是 逻辑或者数据问题,如何确定呢:

  1. 如果上述的Stage的详情耗时与历史执行对比,基本一致,那么基本可以判断为资源问题

  2. 如果直方图中显示的Task Duration有可判断为数据倾斜的情况(个别Task慢,且输入或输出数据远大于其他Task),可能是数据倾斜导致的

  3. 如果并不符合数据倾斜的特征,但是某个节点的Task执行都慢,可能是机器负载异常导致

  4. Spill指标比较高,可能是内存压力大,spill至磁盘导致计算变慢,这种情况需要总结和评估是否加内存或者接受稍慢的情况

比历史慢🐢

排查步骤:

  1. 首先对比两次执行的 Job 或者 Stage 是否有明显的运行时间区别。

  2. 对比执行逻辑是否有改变(例如 broadcast join 变为 sortmerge join),sql 可以查看执行计划,rdd 可以分区 job 的 dag。

  3. driver 内存压力大,导致调度能力下降(目前可以关注 Driver 的 gc 日志)。

  4. 对比是否有数据量的变动,查看 stage 的输入输出就可以了:
    在这里插入图片描述

  5. 资源的差异,可以查看对应的 stage 的 executor 统计或者队列资源的监控。

  6. 数据倾斜:
    在这里插入图片描述

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

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

相关文章

「前端+鸿蒙」鸿蒙应用开发-TS函数

在 TypeScript 中,函数是一等公民,这意味着函数可以作为参数传递、作为其他函数的返回值,甚至可以赋值给变量。TypeScript 为 JavaScript 的函数增加了类型系统,使得函数的参数和返回值都具有明确的类型。 TS快速入门-函数 基本函…

论文写作神器:15大参考文献来源网站推荐

撰写论文需要大量的参考文献支撑论点,这对在校学生和学者而言都是一大挑战。今天,我们可以充分利用网络资源,高效获取优质文献,摆脱遍查图书馆和杂志社的艰辛。本文就为大家推荐15大优质的参考文献来源网站,助力论文写作! AIPaperDone 拥有完美文献综述的AI论文网站 - AIPaperD…

模糊控制器实现对某个对象追踪输入

MATLAB是一个十分便捷的软件,里面提供了许多集成的组件,本文利用simulink实现模糊控制器实现对某个对象追踪输入。 这里的对象根据自己的需求可以修改,那么搭建一个闭环控制系统并不是难事儿,主要是对于模糊控制器参数的设置&…

win设置ftp服务器~java通过ftp下载文件

1.先设置ftp 2.打开服务 3.设置站点 4.起名字 这样就可以了 5.剩下的就是设置权限和账号了,找到对应的按钮就可以了 6.下载文件的代码 public byte[] downloadFile(File file) throws IOException{ByteArrayOutputStream out new ByteArrayOutputStream();toDi…

seerfar选品功能,OZON运营插件工具seerfar

在当今这个数字化、信息化的时代,电子商务的飞速发展使得越来越多的商家开始关注如何更高效地运营自己的在线店铺。其中,选品作为电商运营的重要一环,直接影响着店铺的流量、转化率和利润。在OZON这样的电商平台上,如何快速、准确…

第四篇红队笔记-百靶精讲之Prime-wfuzz-wpscan-openssl enc

靶机Prime渗透 主机发现 nmap扫描与分析 目录爆破与模糊测试 dirb 目录扫描 dev secret.txt wfuzz发现 file参数 根据secret.txt-location.txt 和 file参数结合 secrettier360 根据filelocation.txt得到的on some other php page(改用之前扫到image.p…

chrony内网同步服务器时间

当前需要在10.26.24.62和10.26.24.61两个服务器上设置chrony同步时间,其中10.26.24.62为NTP时间服务器,10.26.24.61去10.26.24.62同步时间 检查Chrony配置文件: 确认10.26.24.62(NTP服务器)的配置文件 /etc/chrony/c…

Spring 自动配置 condition

目录 前言 1. 自定义condition加载bean 1.1. 自定义一个condition注解 1.2. 实现自定义注解对应的实现类 1.3. 使用如上注解 1.4. 使用Spring上下文获取一下改bean 2. 我们来看看Spring是如何加载redisTemplate的。 2.1. 找到Spring的autoconfigure的jar包,我们…

Web前端高亮:深度解析高亮技术的四个方面、五个方面、六个方面与七个方面

Web前端高亮:深度解析高亮技术的四个方面、五个方面、六个方面与七个方面 在Web前端开发中,高亮技术以其独特的功能和广泛的应用场景,为网页增添了丰富的交互体验。然而,高亮技术的实现并非一蹴而就,它涉及到多个方面…

第二十章 SOAP 错误处理 - 产生故障的方法

文章目录 第二十章 SOAP 错误处理 - 产生故障的方法产生故障的方法MakeFault()MakeFault12()MakeSecurityFault()MakeStatusFault() 第二十章 SOAP 错误处理 - 产生故障的方法 产生故障的方法 MakeFault() classmethod MakeFault(pFaultCode As %String, pFaultString As %S…

Steam下载游戏很慢?一个设置解决!

博主今天重装系统后,用steam下载发现巨慢 500MB,都要下载半小时。 平时下载软件,一般1分钟就搞定了,于是大致就知道,设置应该出问题了 于是修改了,如下设置之后,速度翻了10倍。 另外&#x…

【案例分享】印前制版工单系统:“鹿山科技”助力“铭匠数据”重塑业务流程

内容概要 本文介绍了鹿山信息科技通过明道云HAP平台的数字化解决方案提升了铭匠数据在印前制版行业的效率。周口铭匠数据科技有限公司位于河南省周口市沈丘县,是一家专注于印前制版设计服务的公司,成立于2023年。企业在销售业务、版材制作生产和美工设计…

计算机组成原理复习笔记

前言 就是按照考试的题型写的总结 非常应试版 题型 一、进制转换 只考 十进制 二进制 十六进制 之间的相互转换 一个个看 (1)十进制 转其他 转二进制:除以2 从小到大取余数(0或1) 转十六进制 : 除以1…

爬虫可以不必自己写,使用ChatGPT编写抓取电影评论数据脚本

经常去新华书店看看有没有什么新书上架,还是更新挺及时的,可以反映新的技术趋势。这不,最近就看到了这本《巧用 ChatGPT 快速搞定数据分析》,作者是个大牛,第一次看到prompt可以这么写,得写这么长&#xff…

htb-linux-6-beep

nmap web渗透 目录扫描 漏洞关键词 shell py脚本执行 flag root 目前的权限 nmap root

【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境

【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境 大家好 我是寸铁👊 总结了一篇【深度学习】深度学习之巅:在 CentOS 7 上打造完美Python 3.10 与 PyTorch 2.3.0 环境✨ 喜欢的小伙伴可以点点关注 &#…

本地部署AI大模型 —— Ollama文档中文翻译

写在前面 来自Ollama GitHub项目的README.md 文档。文档中涉及的其它文档未翻译,但是对于本地部署大模型而言足够了。 Ollama 开始使用大模型。 macOS Download Windows 预览版 Download Linux curl -fsSL https://ollama.com/install.sh | sh手动安装说明 …

运维入门- python实现对.log日志文件的无用行内容过滤,便于留存有价值的信息

代码原文: def remove_offline_messages(file_path):try:# 打开文件并读取所有行with open(file_path, r, encodingutf-8) as file:lines file.readlines()# 过滤掉包含pc消息离线pcadmin的行filtered_lines [line for line in lines if 丢弃消息 not in line]# …

股票数据集2-纳斯达克NASDAQ 100 分析

1. 数据清洗 用邻近均值的方法,去掉Non_Padding中的NaN数据 这里没用df.fillna(), 因为其只有前向(ffill )和 后向 (bfill) 插值,不适合大量连续的NaN pd转换为np,写一个函数, 返回np数组的空值,lambda的匿名函数返回y轴空值的索…