成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

?spark sql性能調(diào)優(yōu)

IT那活兒 / 1351人閱讀
?spark sql性能調(diào)優(yōu)

點(diǎn)擊上方“IT那活兒”,關(guān)注后了解更多內(nèi)容,不管IT什么活兒,干就完了!??!


引   言


Spark SQL雖然有內(nèi)置優(yōu)化器Catalyst,但是我們自己也可以做一些其他優(yōu)化,本文主要列出出一些常用的優(yōu)化項(xiàng)。


01


緩存數(shù)據(jù)


我們都知道一些計(jì)算中間的數(shù)據(jù)集可以進(jìn)行緩存,緩存到內(nèi)存中明顯要比磁盤中速度要快,Spark SQL可以通過調(diào)用spark.catalog.cacheTable(“tableName”)或者df.cache()來使用內(nèi)存緩存表,然后spark會(huì)只掃描需要的列并自動(dòng)壓縮來減少內(nèi)存和GC使用,可以調(diào)用spark.catalog.uncacheTable(“tableName”)從內(nèi)存中刪除該表。

1.1 緩存中的配置如下:

  • spark.sql.inMemoryColumnarStorage.compressedd(默認(rèn)值為true),設(shè)置為true時(shí)spark sql會(huì)默認(rèn)的為數(shù)據(jù)選擇壓縮方式。

  • Spark.sql.inMemoryColumnarStorage.batchSize(默認(rèn)值為10000),意思是可以為列緩存設(shè)置最大批大小,設(shè)置的大可以提高內(nèi)存利用率和壓縮,但是也有可能導(dǎo)致內(nèi)存溢出。

1.2 緩存中的配置可以通過創(chuàng)建sparkSession時(shí)候進(jìn)行配置,使用方法如下:


02


SQL查詢配置選項(xiàng)







03


數(shù)據(jù)傾斜


SQL查詢?nèi)蝿?wù)時(shí)數(shù)據(jù)傾斜會(huì)嚴(yán)重影響查詢速度,數(shù)據(jù)傾斜就是某個(gè)分區(qū)數(shù)據(jù)嚴(yán)重大于其他分區(qū)數(shù)據(jù),整個(gè)任務(wù)執(zhí)行速度是以執(zhí)行最慢的分區(qū)決定,從一開始我們就應(yīng)該避免數(shù)據(jù)傾斜的情況產(chǎn)生,如果真的產(chǎn)生了,可以通過將發(fā)生數(shù)據(jù)傾斜的任務(wù)拆分成多個(gè)任務(wù)。

前提是先進(jìn)行如下配置:

這樣spark會(huì)動(dòng)態(tài)的將傾斜任務(wù)進(jìn)行拆分。

如果一個(gè)分區(qū)數(shù)據(jù)大于spark.sql.adaptive.skewJoin.skewedPartitionThresholdInBytes(默認(rèn)為256M)且大于spark.sql.adaptive.skewJoin.skewedPartitionFactor(因子默認(rèn)是5)×中位值分區(qū)大小,那么就認(rèn)為該分區(qū)產(chǎn)生了數(shù)據(jù)傾斜。


04


總  結(jié)


在實(shí)際使用中,如果遇到需要多次使用的數(shù)據(jù)集,為了提高效率,我們可以將這些中間數(shù)據(jù)集緩存到內(nèi)存中。

如果數(shù)據(jù)量比較大的時(shí)候我們可以根據(jù)實(shí)際情況進(jìn)行相應(yīng)的一些優(yōu)化項(xiàng)的設(shè)置,數(shù)據(jù)傾斜非常影響數(shù)據(jù)的查詢速度,最好的辦法就是避免數(shù)據(jù)傾斜的產(chǎn)生,這就需要我們指定合理的分區(qū)策略,如果真產(chǎn)生了數(shù)據(jù)傾斜我們可以通過上面的方法進(jìn)行適當(dāng)?shù)膬?yōu)化。




end




本文作者:潘宗昊

本文來源:IT那活兒(上海新炬王翦團(tuán)隊(duì))

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/129644.html

相關(guān)文章

  • Spark面試題(七)——Spark程序開發(fā)調(diào)優(yōu)

    摘要:過程中,各個(gè)節(jié)點(diǎn)上的相同都會(huì)先寫入本地磁盤文件中,然后其他節(jié)點(diǎn)需要通過網(wǎng)絡(luò)傳輸拉取各個(gè)節(jié)點(diǎn)上的磁盤文件中的相同。因此在過程中,可能會(huì)發(fā)生大量的磁盤文件讀寫的操作,以及數(shù)據(jù)的網(wǎng)絡(luò)傳輸操作。Spark系列面試題 Spark面試題(一) Spark面試題(二) Spark面試題(三) Spark面試題(四) Spark面試題(五)——數(shù)據(jù)傾斜調(diào)優(yōu) Spark面試題(...

    taowen 評(píng)論0 收藏0
  • 數(shù)據(jù)庫(kù)

    摘要:編輯大咖說閱讀字?jǐn)?shù)用時(shí)分鐘內(nèi)容摘要對(duì)于真正企業(yè)級(jí)應(yīng)用,需要分布式數(shù)據(jù)庫(kù)具備什么樣的能力相比等分布式數(shù)據(jù)庫(kù),他們條最佳性能優(yōu)化性能優(yōu)化索引與優(yōu)化關(guān)于索引與優(yōu)化的基礎(chǔ)知識(shí)匯總。 mysql 數(shù)據(jù)庫(kù)開發(fā)常見問題及優(yōu)化 這篇文章從庫(kù)表設(shè)計(jì),慢 SQL 問題和誤操作、程序 bug 時(shí)怎么辦這三個(gè)問題展開。 一個(gè)小時(shí)學(xué)會(huì) MySQL 數(shù)據(jù)庫(kù) 看到了一篇適合新手的 MySQL 入門教程,希望對(duì)想學(xué) ...

    mengbo 評(píng)論0 收藏0
  • 數(shù)據(jù)庫(kù)

    摘要:編輯大咖說閱讀字?jǐn)?shù)用時(shí)分鐘內(nèi)容摘要對(duì)于真正企業(yè)級(jí)應(yīng)用,需要分布式數(shù)據(jù)庫(kù)具備什么樣的能力相比等分布式數(shù)據(jù)庫(kù),他們條最佳性能優(yōu)化性能優(yōu)化索引與優(yōu)化關(guān)于索引與優(yōu)化的基礎(chǔ)知識(shí)匯總。 mysql 數(shù)據(jù)庫(kù)開發(fā)常見問題及優(yōu)化 這篇文章從庫(kù)表設(shè)計(jì),慢 SQL 問題和誤操作、程序 bug 時(shí)怎么辦這三個(gè)問題展開。 一個(gè)小時(shí)學(xué)會(huì) MySQL 數(shù)據(jù)庫(kù) 看到了一篇適合新手的 MySQL 入門教程,希望對(duì)想學(xué) ...

    shuibo 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<