SparkSQL性能优化
SparkSQL性能优化
1、设置shuffle过程中的并行度,可以通过spark.sql.shuffle.partitions设置shuffle并行度。(在SQLContext.setConf()中设置)。
2、Hive数据仓库创建的时候,合理设置数据类型,比如设置成Int的就不需要设置成BIGINT,减少数据类型的不必要开销。
3、SQL语句的优化,尽量给出明确的列,比如select name from table 不建议使用 select * from table.
4、并行的处理查询结果,对于SparkSQL查询的结果,如果数据量比较大,比如超过1000条,那么久不要使用collect到driver在处理,使用foreach算法并行处开立查询结果。
5、缓存表。 对于一条SQL语句中可能多次使用到的表,可以对其进行缓存,使用SQLContext.cacheTable(TableName)或者DataFrame.cache即可,SparkSQL会用内存列存储的格式进行表的缓存,然后SparkSQL就可以仅仅扫描需要使用的列,并且自动优化压缩,来最小化内存的使用和GC的开销,SQLContext.uncacheTable(tableName)可以将表从缓存中移除,使用SQLContext.setConf()设置,可以通过spark.sql.inMemoryColumnarStorage.batchSize这个参数,默认10000,配置列存储单位。
6、广播JOIN表,spark.sql.autoBroadcastJoinThreshold,默认10485760(10M),在内存够用的情况下,增大其大小,可以将join中的较小的表广播出去,而不用进行网络数据传输。
7、钨丝计划,spark.sql.tungsten.enabled。默认是true,自动管理内存。
8、最有效的方法为:并行的处理查询结果,缓存表,广播join表!
SparkSQL性能优化相关推荐
- spark-sql性能优化之——动态实现多个列应用同一个函数
在对一个dataframe的多个列实现应用同一个函数时,是否能动态的指定? 例如: 对A,B,C三列实现分组统计 1.初始化spark,构建DF val spark = SparkSession.bu ...
- 真·屠龙之术 | 一次SparkSQL性能分析与优化之旅及相关工具小结
点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多惊喜 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 大数据真好玩 点击右侧关注,大数据真好 ...
- EMR Spark-SQL性能极致优化揭秘 概览篇
作者:林学维,阿里云智能EMR团队技术专家,目前主要专注于EMR产品中开源计算引擎的优化工作 引子 最近阿里云 E-MapReduce 团队在 TPCDS-Perf 榜单中提交了最新成绩,相比第二名( ...
- Spark性能优化 -- Spark SQL、DataFrame、Dataset
本文将详细分析和总结Spark SQL及其DataFrame.Dataset的相关原理和优化过程. Spark SQL简介 Spark SQL是Spark中 具有 大规模关系查询的结构化数据处理 模块 ...
- spark 算子使用类变量_自己工作中超全spark性能优化总结
来源:https://zhuanlan.zhihu.com/ p/108454557 作者:一块小蛋糕 编辑:深度传送门 Spark是大数据分析的利器,在工作中用到spark的地方也比较多,这篇总结是 ...
- 干货 | 数据思维在携程商旅页面性能优化中的一次实践
作者简介 Graviton,携程研发总监,专注数据思维驱动团队效能与技术发展. 本文旨在通过一个实际的例子,说明如何通过数据思维来解决研发工作中的一些棘手问题.通过此文,希望能够清楚地阐述我对下面几个 ...
- rdd数据存内存 数据量_超全spark性能优化总结
Spark是大数据分析的利器,在工作中用到spark的地方也比较多,这篇总结是希望能将自己使用spark的一些调优经验分享出来. 一.常用参数说明 --driver-memory 4g : drive ...
- Spark SQL运行流程及性能优化:RBO和CBO
1 Spark SQL运行流程 1.1 Spark SQL核心--Catalyst Spark SQL的核心是Catalyst查询编译器,它将用户程序中的SQL/Dataset/DataFrame经过 ...
- kali2020进入单模式_蚂蚁集团技术专家山丘:性能优化的常见模式及趋势
陈显铭(山丘) 读完需要 6分钟 速读仅需 2 分钟 陈显铭,花名山丘,就职于蚂蚁集团,对分布式应用架构.服务化.性能优化等有深入的理解.参与支付宝支付链路核心系统,设计.调优应用系统关键能力, 高效 ...
最新文章
- MyBatis学习总结(三)——优化MyBatis配置文件中的配置
- 思维导图下载 注册安全_2019安全工程师《建筑实务》第二章第一节考点:物料提升机思维导图...
- 20162318 2018-2019-2《网络对抗技术》Exp1 PC平台逆向破解
- 巨杉内核笔记(一)| SequoiaDB 会话(session)简介
- Nature methods | Alevin-fry, 一种高效准确的单细胞测序数据预处理工具
- OLAP组件-Clickhouse源码
- qcustomplot删除一条曲线_被“谭卓”旗袍造型给惊艳,波波头搭配一条酒红色旗袍,华丽高贵...
- Kotlin入门(3)基本变量类型的用法
- linux at模块,使用kgdb调试linux内核及内核模块
- CentOS 8源码安装Zabbix5.0
- VGG16的10折交叉验证实现cifar10的分类(keras实现)
- PS学习-剪切蒙版制作艺术字
- matlab 中输入log就是ln吗?(ln就是log以e为底的对数)
- idea回到上一个光标位置
- 692. Top K Frequent Words
- 运动步数已更新,方法教程来了!
- 城市是最好的产业平台 —— 让企业成为城市的名片,城市成为企业的展厅
- 用计算机进行会计核算与手工会计核算,会计核算软件与手工会计核算软件有什么区别...
- 请捎去我的祈祷和祝福
- 数据分析:什么是业务?全面解析问题