其他
SparkSQL在字节跳动的应用实践和优化实战
By 大数据技术与架构
关键词:SparkSQL优化 字节跳动
本文是根据来自字节跳动的分享整理而成。
作者来自字节跳动数据平台查询分析团队。
目标和能力
提供全公司大数据查询的统一服务入口,支持丰富的API接口,覆盖Adhoc、ETL等SQL查询需求
支持多引擎的智能路由、参数的动态优化
Spark-SQL/Hive引擎性能优化
执行计划调优
执行计划的自动调优:
SortMergeJoin调整为ShuffledHashJoin
Leftjoin build left sidemap
约95%左右的joinSQL有被调整成ShuffledHashJoin/BroadcastJoin
被优化的SQL整体速度提升20%~30%
整体执行时长缩短
基于Parquet数据读取剪枝
LocalSort
BoomFilter
BitMap
Prewhere
自动选择排序字段
生成文件时自动排序
命中索引平均性能提升 30%
生成时间增加:10%
空间开销增加:5%
如何选取合适的列
其他优化
Hive/SparkLoad分区Move文件优化:
Spark生成文件合并
Vcore
Spark 访问hivemetastore 特定filter下推:
运行期调优
抽取Hiveexplain逻辑,进行SQL语法正确性检查
对SQL包含的算子、输入的数据量进行标注
小SQL走SparkServer(省去yarn申请资源耗时)
其他默认走Spark-Submit
Executor个数/内存
Overhead、堆外内存
文章不错?点个【在看】吧! 👇