MapReduce服务 MRS-Spark INSERT SELECT语句调优:操作步骤
操作步骤
可对INSERT...SELECT操作做如下的调优操作。
- 如果建的是Hive表,将存储类型设为Parquet,从而减少执行INSERT...SELECT语句的时间。
- 建议使用spark-sql或者在Beeline/JD BCS erver模式下使用spark用户来执行INSERT...SELECT操作,避免执行更改文件owner的操作,从而减少执行INSERT...SELECT语句的时间。
在Beeline/JDB CS erver模式下,executor的用户跟driver是一致的,driver是JDBCServer服务的一部分,是由spark用户启动的,因此其用户也是spark用户,且当前无法实现在运行时将Beeline端的用户透传到executor,因此使用非spark用户时需要对文件进行更改owner为Beeline端的用户,即实际用户。
- 如果查询的数据是大量的小文件将会产生大量map操作,从而导致输出存在大量的小文件,在执行重命名文件操作时将会耗费较多时间,此时可以通过设置“spark.sql.files.maxPartitionBytes”与“spark.files.openCostInBytes”来设置一个partiton读取的最大字节,在一个partition中合并多个小文件来减少输出文件数及执行重命名文件操作的时间,从而减少执行INSERT...SELECT语句的时间。

上述优化操作并不能解决全部的性能问题,对于以下场景仍然需要较多时间:
对于动态分区表,如果其分区数非常多,那么也需要执行较长的时间。
- MapReduce服务_什么是Hive_如何使用Hive
- GaussDB行转列_数据中台架构pdf_高斯数据库行转列_华为云
- RDS for MySQL审计日志_开启日志审计_数据库审计_华为云数据库RDS
- MapReduce服务_什么是MapReduce服务_什么是HBase
- 域名转出-域名如何转出-域名转出流程-域名转出操作步骤
- GaussDB连接_华为Gaussdb_高斯数据库连接_华为云
- GaussDB性能怎么调_华为gaussdb_gaussdb性能_gaussdb学习
- GaussDB性能_Gaussdb数据库性能_高斯数据库性能-华为云
- GaussDB分析_GaussDB数据库分析_高斯数据库分析_华为云
- MapReduce服务_如何使用MapReduce服务_MRS集群客户端安装与使用