侧边栏壁纸
博主头像
另起一行(hang)博主等级

胡编一通,乱写一气

  • 累计撰写 28 篇文章
  • 累计创建 29 个标签
  • 累计收到 1 条评论

目 录CONTENT

文章目录

数工总结 | 组件调优

Wissy
2024-09-13 / 0 评论 / 0 点赞 / 18 阅读 / 1822 字

一、Hadoop

1.1 Map 端

  • 增大环形缓冲区大小
  • 增大环形缓冲区的溢写比例
  • 使用 Combiner 预聚合

1.2 Reduce 端

  • 合理设置 Map 和 Reduce 的个数

    太多:会导致任务间竞争资源,造成任务等待超时。

    太少:会造成 Task 等待。

  • 设置 Map、Reduce 共存

  • 规避使用 Reduce

  • 增加每个 Reduce去 Map中拿数的并行度

  • 增大 Reduce 的资源

  • 使用压缩,减少 IO(LZO、Snappy)

1.3 数据倾斜

  • Map 端进行预聚合
  • 二次 MR(局部聚合+全局聚合)
  • 增大 Reduce 的并行度
  • 自定义分区器

二、Hive

2.1 Map 端

  • 合并小文件
  • 合理设置Map 数据
  • 开启 JVM 重用
  • 调节Map Task 的内存和 CU资源大小

2.2 Reduce

  • 合理设置Reduce 数(生产文件数据大小)
  • 调节Reduce Task 的内存和 CU资源大小

2.3 Join

  • 大小表(Map Join)
  • 大表大表(Sort Merge Bucket (SMB) Join)

2.4 数据倾斜优化

  • count(distinct xxx) 改为 group by+count

  • 开启 skew 参数(partition 打散-预聚合 + 全局聚合)

  • Reduce 倾斜

    • 过滤多余的数据 -- 不应影响业务数据
    • key 打散,二次 MR
  • Join

    • 大小表:Map Join

    • 大表大表

      • 单 Key:拆分 + union all
      • 多 Key:打散+膨胀+局部+全局聚合

2.5 CBO 优化

  • 谓词下推

三、Spark

3.1 资源优化

3.2 并行度优化

3.3 代码优化

3.4 数据倾斜优化

3.5 Map 端

3.6 Reduce 端

3.7 语法优化

3.8 Spark 3.0 AQE

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区