当前位置: 首页 > news >正文

Spark专题-第三部分:性能监控与实战优化(1)-认识spark ui

Spark专题-第三部分:性能监控与实战优化(1)-spark ui

Spark UI 概述

Spark UI 是 Spark 提供的 Web 监控界面,用于实时查看应用程序的执行状态、性能指标和资源配置。

各模块详细解析

1. Jobs 页面

在这里插入图片描述

核心信息区域
**User:** inno                    # 提交作业的用户
**Total Uptime:** 34 min         # 应用总运行时间
**Scheduling Mode:** FIFO        # 调度模式(FIFO/FAIR)
**Completed Jobs:** 48           # 已完成的作业数量
主要功能区域
  • Event Timeline:作业执行时间线可视化
  • Completed Jobs:已完成作业列表,显示执行详情

2. SQL/DataFrame 页面

在这里插入图片描述

表格字段说明
-- 各列含义解析
ID *           : SQL查询的唯一标识符
Description    : 查询描述(通常显示触发查询的代码位置)
Submitted      : 查询提交时间
Duration       : 查询执行耗时
Job IDs        : 关联的Spark Job ID列表
性能分析要点
  • 查询38:执行仅10ms,属于高效查询
  • 查询37:耗时4.5分钟,可能存在性能瓶颈
  • 查询34:关联多个Job([39][48][41][42]),涉及复杂计算

3. Environment 页面

在这里插入图片描述

配置分类
Spark Properties    : Spark核心配置参数
Runtime Information : 运行时环境信息
关键配置参数
# 内存相关配置
spark.buffer.pageSize     = 65536      # 内存页大小
spark.broadcast.blockSize = 65536      # 广播变量块大小# 动态分配配置
spark.dynamicAllocation.enabled = true  # 启用动态资源分配# 序列化配置
spark.serializer = ...                 # 序列化器设置

实际SQL执行案例解析

案例:用户行为分析查询

-- 实际执行的Spark SQL
SELECT user_id,COUNT(*) as action_count,AVG(duration) as avg_duration
FROM user_actions 
WHERE event_date = '2025-09-04'AND action_type IN ('click', 'view')
GROUP BY user_id
HAVING COUNT(*) > 10
ORDER BY action_count DESC
LIMIT 100;

在Spark UI中的对应显示

SQL提交
SQL/DataFrame页面-记录查询信息
生成执行计划-拆分为多个Jobs
Jobs页面-显示Job执行详情
Stage页面-显示任务阶段划分
Storage页面-显示数据缓存情况
Environment页面-显示配置参数

性能优化洞察

  1. 查询37耗时分析

    • 4.5分钟执行时间表明可能存在数据倾斜
    • 关联Job[48][46]需要进一步分析Stage详情
  2. 配置优化建议

    # 针对大数据集的优化配置
    spark.conf.set("spark.sql.adaptive.enabled", "true")           # 启用自适应查询
    spark.conf.set("spark.sql.adaptive.coalescePartitions.enabled", "true")  # 自动合并分区
    spark.conf.set("spark.sql.adaptive.skew.enabled", "true")      # 处理数据倾斜
    

这一篇主要是对spark ui的界面熟悉一下,后面会举出实际的案例进行性能优化

http://www.dtcms.com/a/426689.html

相关文章:

  • 汕头网站设计哪家好鞍山制作网站哪家好
  • 电子商务网站建设试卷软件设计师好考吗
  • 【计算机视觉】形态学的去噪
  • 精读C++20设计模式——行为型设计模式:命令模式
  • petalinux 安装Openblass库
  • 织梦播放器网站网站建设简历自我评价
  • 大数据毕业设计选题推荐-基于大数据的全球经济指标数据分析与可视化系统-Hadoop-Spark-数据可视化-BigData
  • Spring Boot 整合 Redisson 实现分布式锁:实战指南
  • 国鑫发布新一代「海擎」服务器 全面兼容国内外主流OAM GPU
  • 百度电商MultiAgent视频生成系统
  • FRP v0.65.0 内网穿透专业指南(SSH + HTTP/HTTPS 一体化配置)
  • UNIX下C语言编程与实践20-UNIX 文件类型判断:stat 结构 st_mode 与文件类型宏的使用实战
  • 电脑网站开发手机上可以打开吗网站建设如何把代码
  • ROS2下利用遥控手柄控制瑞尔曼RM65-B机器人
  • SOC(安全运营中心)
  • 济南网站建设山东聚搜网推荐传媒公司招聘
  • C++ STL 深度解析:容器、迭代器与算法的协同作战
  • SPI主控的CS引发的读不到设备寄存器
  • 数据标注、Label Studio
  • 央链知播受权发布:图说《“可信资产 IPO + 数链金融 RWA” 链改 2.0 六方共识》
  • 【Proteus8.17仿真】 STM32仿真 0.96OLED 屏幕显示ds1302实时时间
  • 佛山做营销型网站建设wordpress修改域名后无法登陆
  • mysql数据库学习之常用函数(五)
  • 避坑实战!京东商品详情接口开发指南:分页优化、多规格解析与数据完整性保障
  • win10(十二)Nuitka打包程序
  • 【Rust GUI开发入门】编写一个本地音乐播放器(11. 支持动态明暗主题切换)
  • 自己做网站帮公司出认证证书违法吗上海定制网站建设公司
  • [论文阅读] AI + 软件工程(Debug)| 告别 “猜 bug”:TreeMind 用 LLM+MCTS 破解 Android 不完整报告复现难题
  • ESP32 + MCP over MQTT:通过大模型控制智能硬件设备
  • 五大关系数据库(sqlserver、mysql、oracle、pgsql、sqlite)的对象名称和转义字符