Spark SQL性能优化
来源:互联网 发布:ip与mac绑定怎么设置 编辑:程序博客网 时间:2024/05/21 10:25
性能优化参数
针对Spark SQL 性能调优参数如下:
代码示例
import java.util.List;import org.apache.spark.SparkConf;import org.apache.spark.api.java.JavaSparkContext;import org.apache.spark.sql.api.java.JavaSQLContext;import org.apache.spark.sql.api.java.Row;import org.apache.spark.sql.hive.api.java.JavaHiveContext;public class PerformanceTuneDemo { public static void main(String[] args) { SparkConf conf = new SparkConf().setAppName("simpledemo").setMaster("local"); conf.set("spark.sql.codegen", "false"); conf.set("spark.sql.inMemoryColumnarStorage.compressed", "false"); conf.set("spark.sql.inMemoryColumnarStorage.batchSize", "1000"); conf.set("spark.sql.parquet.compression.codec", "snappy"); JavaSparkContext sc = new JavaSparkContext(conf); JavaSQLContext sqlCtx = new JavaSQLContext(sc); JavaHiveContext hiveCtx = new JavaHiveContext(sc); List<Row> result = hiveCtx.sql("SELECT foo,bar,name from pokes2 limit 10").collect(); for (Row row : result) { System.out.println(row.getString(0) + "," + row.getString(1) + "," + row.getString(2)); } }}
Beeline 命令行设置优化参数
beeline> set spark.sql.codegen=true;SET spark.sql.codegen=truespark.sql.codegen=trueTime taken: 1.196 seconds
重要参数说明
spark.sql.codegen Spark SQL在每次执行次,先把SQL查询编译JAVA字节码。针对执行时间长的SQL查询或频繁执行的SQL查询,此配置能加快查询速度,因为它产生特殊的字节码去执行。但是针对很短(1 - 2秒)的临时查询,这可能增加开销,因为它必须先编译每一个查询。
spark.sql.inMemoryColumnarStorage.batchSize:
When caching SchemaRDDs, Spark SQL groups together the records in the RDD in batches of the size given by this option (default: 1000), and compresses each batch. Very small batch sizes lead to low compression, but on the other hand very large sizes can also be problematic, as each batch might be too large to build up in memory.
阅读全文
0 0
- Spark SQL性能优化
- Spark SQL性能优化
- Spark SQL性能优化
- spark sql 性能优化
- Spark SQL性能优化
- spark1.x-spark-sql性能优化
- Spark性能优化(1)
- Spark性能优化(1)
- Spark性能优化(2)
- Spark性能优化(3)
- Spark应用性能优化
- Spark性能优化2
- spark性能优化1
- spark的性能优化
- Spark性能优化总结
- Spark性能优化总结
- Spark性能优化之一
- spark性能优化一
- 【AKKA 官方文档翻译】为什么现代系统需要一个新的编程模型
- hibernate (多对多) 执行update更新操作时,关联表数据会被删除
- 学习笔记之万方数据爬取
- servlet是单例和struts2的action多例的理解
- CULA求逆
- Spark SQL性能优化
- 关于li标签中含有a标签下li:hover无效
- mysql设置用户权限时报错
- eclipse的dx问题
- 【AKKA 官方文档翻译】actor模型如何满足现代分布式系统的需求
- 正则表达式6~15位数字、字母
- Jenkins-工作区清理插件
- MyBatis学习笔记(二)——标签使用
- 海思3516A开发板调试整理(一)