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,一经查实,立即删除!

相关文章

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

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…

Spring 自动配置 condition

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

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 环境✨ 喜欢的小伙伴可以点点关注 &#…

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

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

IDEA配置mybatis-config.xml模板文件

IDEA配置mybatis-config.xml模板文件 File>>Settings>>File and Code Templates 创建mybatis-config.xml模板 模板内容取自mybatis官网 mybatis官网 <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE configurationPUBLIC &qu…

【Java】解决Java报错:NullPointerException

文章目录 引言1. 错误详解2. 常见的出错场景2.1 调用 null 对象的实例方法2.2 访问 null 对象的属性2.3 自动拆箱引起的 NullPointerException 3. 解决方案3.1 使用条件判断防止 NullPointerException3.2 优先使用Optional类 4. 预防措施4.1 在方法入口进行校验4.2 使用注解提高…

如何将 Windows图片查看器的背景颜色改成浅色(灰白色)?

现在大家基本都在使用Win10系统&#xff0c;我们在双击查看图片时&#xff0c;系统默认使用系统自带的图片&#xff08;照片&#xff09;查看器去打开图片。图片查看器的背景色默认是黑色的&#xff0c;如下所示&#xff1a;&#xff08;因为大家可能会遇到同样的问题&#xff…

【Linux】进程5——进程优先级

1.进程优先级 1.1.什么是进程优先级 cpu资源分配的先后顺序&#xff0c;就是指进程的优先权&#xff08;priority&#xff09;。优先权高的进程有优先执行权利。配置进程优先权对多任务环境的linux很有用&#xff0c;可以改善系统性能。还可以把进程运行到指定的CPU上&#x…

关于CodeCombat(沙漠)布朗噪声的攻略

关于CodeCombat(沙漠)//布朗噪声的攻略 总的来说怎么猥琐怎么来 1.走到墙角骷髅看不到的位置&#xff0c;让宠物制造噪音&#xff0c;然后英雄走过去&#xff0c;就是这样没错&#xff08;坐标之类能明白) 最后看看运行结果吧 Rec 0002 希望天天开心

Java SE(Java Platform, Standard Edition)

Java SE&#xff08;Java Platform, Standard Edition&#xff09; 是Java平台的一个版本&#xff0c;面向桌面应用程序、服务器和嵌入式环境。Java SE提供了开发和运行Java应用程序的基础API&#xff08;Application Programming Interface&#xff0c;应用程序编程接口&…

添加Microsoft.VisualStudio.TestTools.UnitTesting命名空间

创建“单元测试项目”&#xff0c;则自动添加 Microsoft.VisualStudio.TestTools.UnitTesting 命名空间