SparkSQL 調優
對一些SparkSQL任務,可以透過快取資料、調優引數、增加並行度提升效能
快取資料
sqlContext.cacheTable("tableName")或dataFrame.cache()構建一個記憶體中的列格式快取
使用sqlContext.uncacheTable("tableName")移除快取
快取設定
可以透過sqlContext.setConf或在SQL中執行SET key=value
setConf("spark.sql.inMemoryColumnarStorage.compressed","true") ,為每列自動選擇壓縮碼
setConf("spark.sql.inMemoryColumnarStorage.batchSize","1000") ,列式快取的批處理大小,大批次可以提升記憶體使用率和壓縮了,但是快取是會有溢位風險
調優引數
引數 | 預設值 | 解釋 |
---|---|---|
spark.sql.autoBroadcastJoinThreshold | 10485760(10M) | Join操作時,要被廣播的表的最大位元組數,-1為禁止廣播 |
spark.sql.tungsten.enabled | true | 開啟tungsten最佳化 |
spark.sql.shuffle.partitions | 200 | shuffle資料時,可用分割槽數 |
spark.sql.planner.externalSort | true | 根據需要執行Sort溢位到磁碟上,否則在每個分割槽記憶體中 |
增加並行度
Spark採用記憶體列式儲存,實際執行查詢效率很高,相對而言資料載入階段耗時較長,合理設定並行度提升檔案載入效率
Spark的並行度指的是什麼?
spark作業中,各個stage的task的數量,也就代表了spark作業在各個階段stage的並行度
如何提高並行度?
作者:Alex90
連結:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2035/viewspace-2819249/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SparkSQL 概述SparkSQL
- SparkSQL手冊SparkSQL
- Spark 效能調優--資源調優Spark
- JVM調優總結-調優方法JVM
- Spark 效能調優--Shuffle調優 SortShuffleManagerSpark
- 【Spark篇】---Spark調優之程式碼調優,資料本地化調優,記憶體調優,SparkShuffle調優,Executor的堆外記憶體調優Spark記憶體
- 調優 | Apache Hudi應用調優指南Apache
- JVM調優總結(十)-調優方法JVM
- SparkSQL概念學習系列之為什麼使用SparkSQL?(二)SparkSQL
- SparkSQL 相關APISparkSQLAPI
- MySQL調優篇 | SQL調優實戰(5)MySql
- 效能調優學習之硬體調優
- php調優PHP
- 模型調優模型
- JVM調優JVM
- MySQL調優MySql
- SQL調優SQL
- 數倉調優實戰:GUC引數調優
- SparkSQL 開窗函式SparkSQL函式
- SparkSQL開窗函式SparkSQL函式
- SparkSQL與Hive metastore ParquetSparkSQLHiveAST
- 03-SparkSQL入門SparkSQL
- 【效能調優】效能測試、分析與調優基礎
- ElasticSearch效能調優Elasticsearch
- Spark shuffle調優Spark
- JVM調優策略JVM
- Nginx 效能調優Nginx
- iOS效能調優iOS
- sql調優1SQL
- php效能調優PHP
- Java效能調優Java
- ORACLE調優方法Oracle
- oracle sql調優OracleSQL
- weblogic調優Web
- 應用調優
- Spark效能調優Spark
- oracle效能調優Oracle
- flink調優