码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Spark性能优化实战总结


    1、成本考虑

    • 重要且紧急的,优先级高
    • 重要不紧急,等人力空闲再优化

    2、优化方向

    2.1、参数优化(优先)

    2.1.1 读取相关

    // 使用scan hive方式读取hive表时,调小maxsize,可增大读取的task任务数
    spark.hadoop.mapreduce.input.fileinputformat.split.maxsize  67108864
    spark.hadoop.mapreduce.input.fileinputformat.split.minsize 1
    
    • 1
    • 2
    • 3

    2.1.2 driver端相关

    // yarn cluster模式下,如果task任务数较多,增大driver的内存和核数,有利于减轻driver压力
    spark.driver.memory 8G
    spark.driver.cores 4
    
    • 1
    • 2
    • 3

    2.1.3 使用广播变量消除join

    // 调大广播变量为50M, 使原本join变成走广播变量方式
    spark.sql.autoBroadcastJoinThreshold = 52,428,800
    
    • 1
    • 2

    2.1.4 增大executor内存

    // 如果发现executor的存在spill 到内存,磁盘,可增大此参数
    spark.executor.memory = xxx
    
    • 1
    • 2

    2.2、逻辑优化

    2.2.1 一表多次读取逻辑合并

    存在1张表,有多次读取,每次读取逻辑不一样,可以合并读取逻辑,实现1次读取表,拿到我们想要的数据。

    2.2.2 消除中间临时表

    hive sql时代 容易有使用临时表,存储下中间数据,避免内存占用过大。
    但spark sql时代,可以消除临时表,减少多余stage,减少耗时

    2.2.3 优化多表join,减少shuffle

    如果多表join,存在重复逻辑,可以使用group by + max减少join

    2.2.x 逻辑优化测试上线

    这一步,比不可少,包括脚本优化前后 结果count数,字段级count数,耗时对比,必须重复验证基本一致后(误差个位数到百位内,占比非常小,因为考虑到逻辑优化前后,某些边界会存在略微差别),才能上线。

  • 相关阅读:
    ESP32网络开发实例-Web控制按钮与硬件状态同步
    pytest运行时参数说明,pytest详解,pytest.ini详解
    ArcGIS实战教程
    3D摄影机选择指南,你知道自己需要什么样的摄影机吗?
    程序员买啥游戏机,自己动手做一个体感小游戏
    webrtc用clang编译支持h264,支持msvc调用库
    命令执行漏洞
    JavaScript关于==隐式转换的判断
    OCR——图像超分调研
    184_Python 在 Excel 和 Power BI 绘制堆积瀑布图
  • 原文地址:https://blog.csdn.net/u014034497/article/details/127819879
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号