举例说明 如何判断Spark作业的瓶颈

  • 首先看哪个Job执行时间长:
    例如下图中明显Job 2时间执行最长,这个对rdd作业是直观有效的。
    对于sql作业可能不准确,sql需要关注stage的详情耗时。
  • 然后看执行时间长的Job中哪个stage执行时间长:
    明显stage 7和stage 13执行时间长(这个不一定百分百准确,这个包含等待调度的时间,可以点击stage链接查看详情耗时)

    所以stage7的REPARTITION和stage13的join是瓶颈。
    stage7是不必要的,因为join是会根据key再分区,REPARTITION没有意义。
  • 怎么确定stage 13到底是什么代码导致的慢呢?

    途中有四个算子,reduceByKey、Join都有可能导致数据倾斜,flatMap和map可能导致数据膨胀或者自定义逻辑慢,当前上图中的map是 HDFSIO的逻辑,比较简单。
    • 数据倾斜:

      没有明显倾斜,但是:
      第一:执行时间有长有短:通过分析数据,基本与gc时间有关;
      第二:gc时间差异明显:可能与自定义代码逻辑有关系;
      第三:内存溢出有大有小:可能与聚合逻辑有关系;
      第四:内存使用峰值有明显区别。
      综上,怀疑的范围主要是:reduceByKey的处理逻辑、join个别key可能比较集中一点点、flatmap逻辑存在问题导致内存紧张
      还有一种情况是代码逻辑中有慢操作,例如请求外部接口、迭代计算、复杂低效的逻辑都可以通过运行时的threaddump或者结束后的pmap.log来判断。具体可以看:https://blog.csdn.net/weixin_38643743/article/details/139721055
相关推荐
阿里云大数据AI技术13 分钟前
阿里云 EMR Serverless Spark TPC-DS 100T 榜首背后的内核技术
spark
lisw0525 分钟前
机器人系统:化学研究的超空间引擎——从自动化到智能化的范式革命
大数据·人工智能·科技·机器学习·机器人
卓豪终端管理29 分钟前
实力领跑!卓豪荣获 2026 高德纳双料认可
大数据·数据库·人工智能
打工的小王41 分钟前
消息队列之Kafka(一)搭建服务
分布式·kafka
新诺韦尔API1 小时前
手机二要素验证和银行卡二要素验证接口的区别?
大数据·api
weixin199701080161 小时前
Tume商品详情页前端性能优化实战
大数据·前端·java-rabbitmq
未来之窗软件服务2 小时前
平台对接(2)美团/抖音/饿了么/有赞/微信/京东券核销服务商模式—东方仙盟
大数据·运维·微信·平台对接·仙盟创梦ide·东方仙盟·东方仙盟sdk
2501_944934732 小时前
大专信息统计与分析专业,怎么提升Excel高级函数的使用能力?
大数据·excel
康康的AI博客2 小时前
AI模型压缩与优化:如何通过蒸馏提升模型的运行效率
大数据·人工智能
藦卡机器人2 小时前
国产包装机器人品牌推荐
大数据·人工智能·机器人