這篇文章將為大家詳細講解有關sparksql如何調優,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
創新互聯IDC提供業務:眉山服務器托管,成都服務器租用,眉山服務器托管,重慶服務器租用等四川省內主機托管與主機租用業務;數據中心含:雙線機房,BGP機房,電信機房,移動機房,聯通機房。
1,jvm調優
這個是扯不斷,理還亂。建議能加內存就加內存,沒事調啥JVM,你都不了解JVM和你的任務數據。
spark調優系列之內存和GC調優
2,內存調優
緩存表
spark2.+采用:
spark.catalog.cacheTable("tableName")緩存表,spark.catalog.uncacheTable("tableName")解除緩存。
spark 1.+采用:
采用 sqlContext.cacheTable("tableName")緩存,sqlContext.uncacheTable("tableName") 解除緩存
Sparksql僅僅會緩存必要的列,并且自動調整壓縮算法來減少內存和GC壓力。
屬性 | 默認值 | 介紹 |
spark.sql.inMemoryColumnarStorage.compressed | true | 假如設置為true,SparkSql會根據統計信息自動的為每個列選擇壓縮方式進行壓縮。 |
spark.sql.inMemoryColumnarStorage.batchSize | 10000 | 控制列緩存的批量大小。批次大有助于改善內存使用和壓縮,但是緩存數據會有OOM的風險 |
3,廣播
大小表進行join時,廣播小表到所有的Worker節點,來提升性能是一個不錯的選擇。Spark提供了兩個參數可以調整,不同版本會有些許不一樣,本文以Spark2.2.1為例講解。
屬性 | 默認值 | 描述 |
spark.sql.broadcastTimeout | 300 | 廣播等待超時時間,單位秒 |
spark.sql.autoBroadcastJoinThreshold | 10485760 (10 MB) | 最大廣播表的大小。設置為-1可以禁止該功能。當前統計信息僅支持Hive Metastore表 |
廣播的變量的使用其實,有時候沒啥用處。在任務超多,夸stage使用數據的時候才能凸顯其真正作用。任務一趟跑完了,其實廣播不廣播無所謂了。。。
4,分區數據的調控
分區設置spark.sql.shuffle.partitions,默認是200.
對于有些公司來說,估計在用的時候會有Spark sql處理的數據比較少,然后資源也比較少,這時候這個shuffle分區數200就太大了,應該適當調小,來提升性能。
也有一些公司,估計在處理離線數據,數據量特別大,而且資源足,這時候shuffle分區數200,明顯不夠了,要適當調大。
適當,就完全靠經驗。
5,文件與分區
這個總共有兩個參數可以調整:
一個是在讀取文件的時候一個分區接受多少數據;
另一個是文件打開的開銷,通俗理解就是小文件合并的閾值。
文件打開是有開銷的,開銷的衡量,Spark 采用了一個比較好的方式就是打開文件的開銷用,相同時間能掃描的數據的字節數來衡量。
參數介紹如下:
屬性名稱 | 默認值 | 介紹 |
spark.sql.files.maxPartitionBytes | 134217728 (128 MB) | 打包傳入一個分區的最大字節,在讀取文件的時候。 |
spark.sql.files.openCostInBytes | 4194304 (4 MB) | 用相同時間內可以掃描的數據的大小來衡量打開一個文件的開銷。當將多個文件寫入同一個分區的時候該參數有用。該值設置大一點有好處,有小文件的分區會比大文件分區處理速度更快(優先調度)。 |
spark.sql.files.maxPartitionBytes該值的調整要結合你想要的并發度及內存的大小來進行。
spark.sql.files.openCostInBytes說直白一些這個參數就是合并小文件的閾值,小于這個閾值的文件將會合并。
6,文件格式
建議parquet或者orc。Parquet已經可以達到很大的性能了。
關于“sparksql如何調優”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
文章題目:sparksql如何調優
當前地址:http://vcdvsql.cn/article20/phojjo.html
成都網站建設公司_創新互聯,為您提供定制網站、網站排名、微信公眾號、網站導航、外貿建站、網站營銷
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯