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
- 調優 | Apache Hudi應用調優指南Apache
- MySQL調優篇 | SQL調優實戰(5)MySql
- 效能調優學習之硬體調優
- JVM調優JVM
- flink調優
- MySQL調優MySql
- php調優PHP
- 模型調優模型
- 數倉調優實戰:GUC引數調優
- 03-SparkSQL入門SparkSQL
- SparkSQL 開窗函式SparkSQL函式
- SparkSQL與Hive metastore ParquetSparkSQLHiveAST
- SparkSQL開窗函式SparkSQL函式
- 【效能調優】效能測試、分析與調優基礎
- MySQL調優之索引優化MySql索引優化
- Linux核心調優Linux
- 調優引數
- Roberta: Bert調優
- adnroid效能調優
- ElasticSearch效能調優Elasticsearch
- Spark shuffle調優Spark
- JVM調優策略JVM
- SparkSQL /DataFrame /Spark RDD誰快?SparkSQL
- SparkSql 06 開窗函式SparkSQL函式
- SparkSQL 在有讚的實踐SparkSQL
- SparkSQL外部資料來源SparkSQL
- SparkSQL部署與簡單使用SparkSQL
- MySQL調優之查詢優化MySql優化
- Nginx安全優化與效能調優Nginx優化
- Linux之效能調優Linux
- 掌握JVM調優命令JVM
- spark調優-背壓Spark
- 效能監控調優
- mysql 引數調優MySql
- .Net效能調優-MemoryPool