尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

Spark专题-第三部分:性能监控与实战优化(2)-分区优化 - 详解

Spark专题-第三部分:性能监控与实战优化(2)-分区优化 - 详解
📅 发布时间:2026/6/20 5:19:11

Spark专题-第三部分:性能监控与实战优化(2)-分区优化 - 详解

这一篇不同于之前理论层面的讲解,会直接引入前段时间在工作中发现的问题,并配上思路和解决办法

问题回顾

事情的起因是一个批处理作业,在9月24号当天疯狂报错,原本凌晨就该结束的作业愣是拖到晚上
在这里插入图片描述

日志探查

那很自然会想到查看日志,找找报错的原因,这里就会通过之前提到的spark ui查看,也很自然的就能找到图中所提示的报错信息
在这里插入图片描述

Failure Reason: Job aborted due to stage failure
Task 1 in stage 46.0 failed 4 times
Reason: Couldn't form a bad node; couldn't: ASI, Y15450404805, 1654378, Q0_00043
compute-node-ZR1002T7.mm-sgps.com
Error code: I4E

这种类型的报错通常属于网络通信或资源管理类问题

网络通信错误
节点间连接超时
防火墙/安全组限制
DNS解析失败
网络分区
executor与driver失联
端口被阻止
主机名无法解析
集群节点隔离
resource_issues = [
"内存不足导致GC overhead",
"磁盘空间耗尽",
"CPU资源竞争激烈",
"网络带宽瓶颈",
"容器资源限制触发"
]

但如果是网络原因,不会只有这一个作业异常,于是我们便初步怀疑是资源不足导致的,而这些猜想需要继续通过spark ui找证据。
因为作业是通过提交spark sql的方式提交,所以我们当时想知道是哪段sql导致的报错,于是便去查看了SQL/DataFrame菜单,找到失败的语句
在这里插入图片描述
一路顺着数据流程往下找,发现了两个可疑的地方

  • 14个亿的数据量,却只安排了2个partition处理,累死也算不出来
  • 到sort算子部分就停止了
    那此时的问题可能就出现在,用很少的分区去对极大的数据量进行排序,导致资源不足,出现报错
    在这里插入图片描述

sql验证

当从日志里找出这些蛛丝马迹后,就该看看实际执行的sql能否和这些猜想对应上

where day between today(-2) and today(-1)
cluster by  day

从执行的sql里,我们发现了这样一句,每天会更新最近2天的数据,所以day值只会有2个,而cluster by day 这句就是罪魁祸首了,将14亿的数据按2个day分组,调用sort算子,导致资源不足作业失败

性能优化

定位问题后,一切就好解决了,直接将最后一句改成

DISTRIBUTE BY day, ceil(rand() * 100)

虽然还是2个day,但通过ceil(rand() * 100) 起到稀释加盐的作用,将数据打散,优化后再查看日志就会发现这里的分区数已经变大,作业也就顺利执行完成
在这里插入图片描述

相关新闻

  • 补贴防薅测试用例设计
  • 理解C++20的革命特性——协程支持2:编写简单的协程调度器 - 实践
  • 分箱效果评估:IV值和卡方

最新新闻

  • 深入解析S12XDBG硬件调试模块:从比较器、状态机到复杂断点实战
  • 从环境变量到密码安全:Aero处理敏感配置的完整方案
  • CANN/ge获取HCCL跟随流数量
  • RxJavaSample高级技巧:10个实用方法解决回调地狱和复杂异步问题
  • 终极指南:快速解决跨平台中文显示不一致的PingFangSC字体配置方案
  • MiniCPM-V 4.6端侧部署实战:RTX 4070上稳定运行多模态推理

日新闻

  • 信任的进化:技术实现详解——如何用JavaScript构建博弈论模拟器
  • Terrakube自定义工作流:如何集成OPA、Infracost等工具扩展IaC能力
  • grunt-concurrent快速入门:5分钟学会并行运行Grunt任务

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号